|
@@ -122,6 +122,12 @@ func syncUsers(idpUsers []idp.User) error {
|
|
|
filters := logic.GetServerSettings().UserFilters
|
|
|
|
|
|
for _, user := range idpUsers {
|
|
|
+ if user.AccountArchived {
|
|
|
+ // delete the user if it has been archived.
|
|
|
+ _ = logic.DeleteUser(user.Username)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
var found bool
|
|
|
for _, filter := range filters {
|
|
|
if strings.HasPrefix(user.Username, filter) {
|
|
@@ -150,6 +156,13 @@ func syncUsers(idpUsers []idp.User) error {
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+ // It's possible that a user can attempt to log in to Netmaker
|
|
|
+ // after the IDP is configured but before the users are synced.
|
|
|
+ // Since the user doesn't exist, a pending user will be
|
|
|
+ // created. Now, since the user is created, the pending user
|
|
|
+ // can be deleted.
|
|
|
+ _ = logic.DeletePendingUser(user.Username)
|
|
|
} else if dbUser.AuthType == models.OAuth {
|
|
|
if dbUser.AccountDisabled != user.AccountDisabled ||
|
|
|
dbUser.DisplayName != user.DisplayName ||
|