mirror of https://github.com/h44z/wg-portal.git
				
				
				
			ldap-sync: fix creation of only one user per LDAP sync (#375)
Before this fix, a too early `return` statement terminated the `updateLdapUsers()` function, whenever one not already existing user was created. Therefore, in each LDAP sync a maximum of one new user could be created (i.e., it took x LDAP sync cycles until x new LDAP users are registered in wg-portal). Depending on the LDAP `sync_interval` this can take a long time and produces unecessary long waiting times until users are available in wg-portal. Removing the early return statement, and move the remainder of the function into an `else` statement, so that all new users can be added in a single LDAP sync. Also adding a debug statement to better trace the behavior. Signed-off-by: klmmr <35450576+klmmr@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									67f076effe
								
							
						
					
					
						commit
						eeb0c87c68
					
				|  | @ -506,18 +506,16 @@ func (m Manager) updateLdapUsers( | ||||||
| 		tctx, cancel := context.WithTimeout(ctx, 30*time.Second) | 		tctx, cancel := context.WithTimeout(ctx, 30*time.Second) | ||||||
| 		tctx = domain.SetUserInfo(tctx, domain.SystemAdminContextUserInfo()) | 		tctx = domain.SetUserInfo(tctx, domain.SystemAdminContextUserInfo()) | ||||||
| 
 | 
 | ||||||
| 		// create new user
 |  | ||||||
| 		if existingUser == nil { | 		if existingUser == nil { | ||||||
|  | 			// create new user
 | ||||||
|  | 			logrus.Tracef("creating new user %s from provider %s...", user.Identifier, provider.ProviderName) | ||||||
|  | 			 | ||||||
| 			err := m.NewUser(tctx, user) | 			err := m.NewUser(tctx, user) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				cancel() | 				cancel() | ||||||
| 				return fmt.Errorf("create error for user id %s: %w", user.Identifier, err) | 				return fmt.Errorf("create error for user id %s: %w", user.Identifier, err) | ||||||
| 			} | 			} | ||||||
| 
 | 		} else { | ||||||
| 			cancel() |  | ||||||
| 			return nil |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 			// update existing user
 | 			// update existing user
 | ||||||
| 			if provider.AutoReEnable && existingUser.DisabledReason == domain.DisabledReasonLdapMissing { | 			if provider.AutoReEnable && existingUser.DisabledReason == domain.DisabledReasonLdapMissing { | ||||||
| 				user.Disabled = nil | 				user.Disabled = nil | ||||||
|  | @ -552,6 +550,7 @@ func (m Manager) updateLdapUsers( | ||||||
| 					m.bus.Publish(app.TopicUserEnabled, *user) | 					m.bus.Publish(app.TopicUserEnabled, *user) | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 		} | ||||||
| 
 | 
 | ||||||
| 		cancel() | 		cancel() | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue