Skip to content

Commit

Permalink
Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
nikolaydimitrov committed Dec 11, 2023
1 parent eb62685 commit 5bf4f3c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
13 changes: 11 additions & 2 deletions handlers/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,10 +179,19 @@ func GroupSave(c *gin.Context, user *models.User) {
c.JSON(http.StatusInternalServerError, DBError3Response)
return
}
if groupUser.IsAdmin || user.HasPermission(models.PermissionAdmin) {
retiredMembersTokenMap := models.LoadGroupUserIDs(group.ID)
sameMembers := len(retiredMembersTokenMap) == len(r.Members)
if sameMembers {
for _, member := range r.Members {
if _, present := retiredMembersTokenMap[member.ID]; !present {
sameMembers = false
}
}
}
// Update members?
if (groupUser.IsAdmin || user.HasPermission(models.PermissionAdmin)) && !sameMembers {
// We can edit the Group object...
newMembersMap := map[uint64]bool{}
retiredMembersTokenMap := models.LoadGroupUserIDs(group.ID)
for _, m := range r.Members {
newMembersMap[m.ID] = m.IsAdmin
delete(retiredMembersTokenMap, m.ID)
Expand Down
9 changes: 9 additions & 0 deletions handlers/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,11 @@ func newUserStatusResponse(user *models.User, details bool) UserStatusResponse {
return result
}

func numUsers() (result int) {
db.Instance.Raw("select count(*) from users").Scan(&result)
return
}

func UserLogin(c *gin.Context) {
postReq := UserLoginRequest{}
err := c.ShouldBindJSON(&postReq)
Expand All @@ -131,6 +136,10 @@ func UserLogin(c *gin.Context) {
}
} else if postReq.New {
// Check if we have a brand new instance
if numUsers() != 0 {
c.JSON(http.StatusForbidden, NopeResponse)
return
}
if err = createFirstUser(&postReq); err != nil {
c.JSON(http.StatusBadRequest, Response{err.Error()})
return
Expand Down

0 comments on commit 5bf4f3c

Please sign in to comment.