Browse Source

Check user != nil before checking values (#9881)

* Check user != nil before checking values

* Handle autoAdmin
for-closed-social
zeripath 4 years ago
committed by techknowlogick
parent
commit
dcf7e858cb
1 changed files with 15 additions and 7 deletions
  1. +15
    -7
      models/login_source.go

+ 15
- 7
models/login_source.go View File

@ -473,13 +473,21 @@ func LoginViaLDAP(user *User, login, password string, source *LoginSource, autoR
// Update User admin flag if exist // Update User admin flag if exist
if isExist, err := IsUserExist(0, sr.Username); err != nil { if isExist, err := IsUserExist(0, sr.Username); err != nil {
return nil, err return nil, err
} else if isExist &&
!user.ProhibitLogin && len(source.LDAP().AdminFilter) > 0 && user.IsAdmin != sr.IsAdmin {
// Change existing admin flag only if AdminFilter option is set
user.IsAdmin = sr.IsAdmin
err = UpdateUserCols(user, "is_admin")
if err != nil {
return nil, err
} else if isExist {
if user == nil {
user, err = GetUserByName(sr.Username)
if err != nil {
return nil, err
}
}
if user != nil &&
!user.ProhibitLogin && len(source.LDAP().AdminFilter) > 0 && user.IsAdmin != sr.IsAdmin {
// Change existing admin flag only if AdminFilter option is set
user.IsAdmin = sr.IsAdmin
err = UpdateUserCols(user, "is_admin")
if err != nil {
return nil, err
}
} }
} }

Loading…
Cancel
Save