|  | @@ -146,10 +146,16 @@ func syncUsers(idpUsers []idp.User) error {
 | 
											
												
													
														|  |  					return err
 |  |  					return err
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | 
 |  | +		} else {
 | 
											
												
													
														|  | 
 |  | +			logger.Log(0, "user with username "+user.Username+" already exists, skipping creation")
 | 
											
												
													
														|  | 
 |  | +			continue
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	for _, user := range dbUsersMap {
 |  |  	for _, user := range dbUsersMap {
 | 
											
												
													
														|  | 
 |  | +		if user.ExternalIdentityProviderID == "" {
 | 
											
												
													
														|  | 
 |  | +			continue
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  |  		if _, ok := idpUsersMap[user.UserName]; !ok {
 |  |  		if _, ok := idpUsersMap[user.UserName]; !ok {
 | 
											
												
													
														|  |  			// delete the user if it has been deleted on idp.
 |  |  			// delete the user if it has been deleted on idp.
 | 
											
												
													
														|  |  			err = logic.DeleteUser(user.UserName)
 |  |  			err = logic.DeleteUser(user.UserName)
 | 
											
										
											
												
													
														|  | @@ -179,9 +185,7 @@ func syncGroups(idpGroups []idp.Group) error {
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	dbGroupsMap := make(map[string]models.UserGroup)
 |  |  	dbGroupsMap := make(map[string]models.UserGroup)
 | 
											
												
													
														|  | -	dbGroupsNameMap := make(map[models.UserGroupID]struct{})
 |  | 
 | 
											
												
													
														|  |  	for _, group := range dbGroups {
 |  |  	for _, group := range dbGroups {
 | 
											
												
													
														|  | -		dbGroupsNameMap[group.ID] = struct{}{}
 |  | 
 | 
											
												
													
														|  |  		if group.ExternalIdentityProviderID != "" {
 |  |  		if group.ExternalIdentityProviderID != "" {
 | 
											
												
													
														|  |  			dbGroupsMap[group.ExternalIdentityProviderID] = group
 |  |  			dbGroupsMap[group.ExternalIdentityProviderID] = group
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
										
											
												
													
														|  | @@ -214,14 +218,7 @@ func syncGroups(idpGroups []idp.Group) error {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		dbGroup, ok := dbGroupsMap[group.ID]
 |  |  		dbGroup, ok := dbGroupsMap[group.ID]
 | 
											
												
													
														|  |  		if !ok {
 |  |  		if !ok {
 | 
											
												
													
														|  | -			// create the group only if it doesn't exist.
 |  | 
 | 
											
												
													
														|  | -			if _, ok := dbGroupsNameMap[models.UserGroupID(group.Name)]; ok {
 |  | 
 | 
											
												
													
														|  | -				logger.Log(0, "group with name "+group.Name+" already exists, skipping creation")
 |  | 
 | 
											
												
													
														|  | -				continue
 |  | 
 | 
											
												
													
														|  | -			}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  			err := proLogic.CreateUserGroup(models.UserGroup{
 |  |  			err := proLogic.CreateUserGroup(models.UserGroup{
 | 
											
												
													
														|  | -				ID:                         models.UserGroupID(group.Name),
 |  | 
 | 
											
												
													
														|  |  				ExternalIdentityProviderID: group.ID,
 |  |  				ExternalIdentityProviderID: group.ID,
 | 
											
												
													
														|  |  				Default:                    false,
 |  |  				Default:                    false,
 | 
											
												
													
														|  |  				Name:                       group.Name,
 |  |  				Name:                       group.Name,
 | 
											
										
											
												
													
														|  | @@ -229,6 +226,12 @@ func syncGroups(idpGroups []idp.Group) error {
 | 
											
												
													
														|  |  			if err != nil {
 |  |  			if err != nil {
 | 
											
												
													
														|  |  				return err
 |  |  				return err
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | 
 |  | +		} else {
 | 
											
												
													
														|  | 
 |  | +			dbGroup.Name = group.Name
 | 
											
												
													
														|  | 
 |  | +			err = proLogic.UpdateUserGroup(dbGroup)
 | 
											
												
													
														|  | 
 |  | +			if err != nil {
 | 
											
												
													
														|  | 
 |  | +				return err
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		groupMembersMap := make(map[string]struct{})
 |  |  		groupMembersMap := make(map[string]struct{})
 |