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

* Check user != nil before checking values

* Handle autoAdmin

Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
6543 2020-01-20 04:01:39 +01:00 committed by techknowlogick
parent f2e9d4b851
commit ce756ee89f

View file

@ -473,7 +473,14 @@ 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 && } 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 { !user.ProhibitLogin && len(source.LDAP().AdminFilter) > 0 && user.IsAdmin != sr.IsAdmin {
// Change existing admin flag only if AdminFilter option is set // Change existing admin flag only if AdminFilter option is set
user.IsAdmin = sr.IsAdmin user.IsAdmin = sr.IsAdmin
@ -482,6 +489,7 @@ func LoginViaLDAP(user *User, login, password string, source *LoginSource, autoR
return nil, err return nil, err
} }
} }
}
if !autoRegister { if !autoRegister {
if isAttributeSSHPublicKeySet && synchronizeLdapSSHPublicKeys(user, source, sr.SSHPublicKey) { if isAttributeSSHPublicKeySet && synchronizeLdapSSHPublicKeys(user, source, sr.SSHPublicKey) {