diff options
Diffstat (limited to 'modules/auth/auth.go')
-rw-r--r-- | modules/auth/auth.go | 20 |
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 } |