diff options
Diffstat (limited to 'modules/auth/sso/user.go')
-rw-r--r-- | modules/auth/sso/user.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/auth/sso/user.go b/modules/auth/sso/user.go new file mode 100644 index 0000000000..69bbebccc7 --- /dev/null +++ b/modules/auth/sso/user.go @@ -0,0 +1,33 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package sso + +import ( + "net/http" + + "code.gitea.io/gitea/models" +) + +// SignedInUser returns the user object of signed user. +// It returns a bool value to indicate whether user uses basic auth or not. +func SignedInUser(req *http.Request, ds DataStore, sess SessionStore) (*models.User, bool) { + if !models.HasEngine { + return nil, false + } + + // Try to sign in with each of the enabled plugins + for _, ssoMethod := range Methods() { + if !ssoMethod.IsEnabled() { + continue + } + user := ssoMethod.VerifyAuthData(req, ds, sess) + if user != nil { + _, isBasic := ssoMethod.(*Basic) + return user, isBasic + } + } + + return nil, false +} |