summaryrefslogtreecommitdiffstats
path: root/modules/auth/auth.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/auth/auth.go')
-rw-r--r--modules/auth/auth.go20
1 files changed, 19 insertions, 1 deletions
diff --git a/modules/auth/auth.go b/modules/auth/auth.go
index 302620dbc8..5b7276b48a 100644
--- a/modules/auth/auth.go
+++ b/modules/auth/auth.go
@@ -60,6 +60,7 @@ func SignedInId(req *http.Request, sess session.Store) int64 {
}
// 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, sess session.Store) (*models.User, bool) {
if !models.HasEngine {
return nil, false
@@ -75,8 +76,25 @@ func SignedInUser(req *http.Request, sess session.Store) (*models.User, bool) {
if err != nil {
if err != models.ErrUserNotExist {
log.Error(4, "GetUserByName: %v", err)
+ return nil, false
+ }
+
+ // Check if enabled auto-registeration.
+ if setting.Service.EnableReverseProxyAutoRegister {
+ u := &models.User{
+ Name: webAuthUser,
+ Email: webAuthUser + "@gogs.io",
+ Passwd: webAuthUser,
+ IsActive: true,
+ }
+ if err = models.CreateUser(u); err != nil {
+ // FIXME: should I create a system notice?
+ log.Error(4, "CreateUser: %v", err)
+ return nil, false
+ } else {
+ return u, false
+ }
}
- return nil, false
}
return u, false
}