Przeglądaj źródła

fix(go): empty id user groups membership;

Vishal Dalwadi 3 miesięcy temu
rodzic
commit
cf27ec3169
3 zmienionych plików z 10 dodań i 10 usunięć
  1. 8 8
      pro/auth/sync.go
  2. 1 1
      pro/controllers/users.go
  3. 1 1
      pro/logic/user_mgmt.go

+ 8 - 8
pro/auth/sync.go

@@ -218,11 +218,11 @@ func syncGroups(idpGroups []idp.Group) error {
 
 		dbGroup, ok := dbGroupsMap[group.ID]
 		if !ok {
-			err := proLogic.CreateUserGroup(models.UserGroup{
-				ExternalIdentityProviderID: group.ID,
-				Default:                    false,
-				Name:                       group.Name,
-			})
+			dbGroup.ExternalIdentityProviderID = group.ID
+			dbGroup.Name = group.Name
+			dbGroup.Default = false
+			dbGroup.NetworkRoles = make(map[models.NetworkID]map[models.UserRoleID]struct{})
+			err := proLogic.CreateUserGroup(&dbGroup)
 			if err != nil {
 				return err
 			}
@@ -241,18 +241,18 @@ func syncGroups(idpGroups []idp.Group) error {
 
 		for _, user := range dbUsers {
 			// use dbGroup.Name because the group name may have been changed on idp.
-			_, inNetmakerGroup := user.UserGroups[models.UserGroupID(dbGroup.Name)]
+			_, inNetmakerGroup := user.UserGroups[dbGroup.ID]
 			_, inIDPGroup := groupMembersMap[user.ExternalIdentityProviderID]
 
 			if inNetmakerGroup && !inIDPGroup {
 				// use dbGroup.Name because the group name may have been changed on idp.
-				delete(dbUsersMap[user.ExternalIdentityProviderID].UserGroups, models.UserGroupID(dbGroup.Name))
+				delete(dbUsersMap[user.ExternalIdentityProviderID].UserGroups, dbGroup.ID)
 				modifiedUsers[user.ExternalIdentityProviderID] = struct{}{}
 			}
 
 			if !inNetmakerGroup && inIDPGroup {
 				// use dbGroup.Name because the group name may have been changed on idp.
-				dbUsersMap[user.ExternalIdentityProviderID].UserGroups[models.UserGroupID(dbGroup.Name)] = struct{}{}
+				dbUsersMap[user.ExternalIdentityProviderID].UserGroups[dbGroup.ID] = struct{}{}
 				modifiedUsers[user.ExternalIdentityProviderID] = struct{}{}
 			}
 		}

+ 1 - 1
pro/controllers/users.go

@@ -442,7 +442,7 @@ func createUserGroup(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
 		return
 	}
-	err = proLogic.CreateUserGroup(userGroupReq.Group)
+	err = proLogic.CreateUserGroup(&userGroupReq.Group)
 	if err != nil {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
 		return

+ 1 - 1
pro/logic/user_mgmt.go

@@ -530,7 +530,7 @@ func ValidateUpdateGroupReq(g models.UserGroup) error {
 }
 
 // CreateUserGroup - creates new user group
-func CreateUserGroup(g models.UserGroup) error {
+func CreateUserGroup(g *models.UserGroup) error {
 	// default groups are currently created directly in the db.
 	// this check is only to prevent future errors.
 	if g.Default && g.ID == "" {