aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-01-20 04:01:39 +0100
committertechknowlogick <techknowlogick@gitea.io>2020-01-19 22:01:39 -0500
commitce756ee89fa1e0c27a0f3a4a26016aa6bab72648 (patch)
tree3b4e0f3c7add4f07740930da0064aec2967f7212
parentf2e9d4b85108e29f13e3a2f3425e77f7ec3dec7c (diff)
downloadgitea-ce756ee89fa1e0c27a0f3a4a26016aa6bab72648.tar.gz
gitea-ce756ee89fa1e0c27a0f3a4a26016aa6bab72648.zip
Check user != nil before checking values (#9881) (#9883)
* Check user != nil before checking values * Handle autoAdmin Co-authored-by: zeripath <art27@cantab.net>
-rw-r--r--models/login_source.go22
1 files changed, 15 insertions, 7 deletions
diff --git a/models/login_source.go b/models/login_source.go
index 0a8a92336e..0c4d444fec 100644
--- a/models/login_source.go
+++ b/models/login_source.go
@@ -473,13 +473,21 @@ func LoginViaLDAP(user *User, login, password string, source *LoginSource, autoR
// Update User admin flag if exist
if isExist, err := IsUserExist(0, sr.Username); err != nil {
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
+ }
}
}