diff --git a/modules/auth/auth.go b/modules/auth/auth.go index 811f89074..33ba77796 100644 --- a/modules/auth/auth.go +++ b/modules/auth/auth.go @@ -69,14 +69,7 @@ func SignedInID(ctx *macaron.Context, sess session.Store) int64 { uid := sess.Get("uid") if uid == nil { return 0 - } - if id, ok := uid.(int64); ok { - if _, err := models.GetUserByID(id); err != nil { - if !models.IsErrUserNotExist(err) { - log.Error(4, "GetUserById: %v", err) - } - return 0 - } + } else if id, ok := uid.(int64); ok { return id } return 0 @@ -89,66 +82,64 @@ func SignedInUser(ctx *macaron.Context, sess session.Store) (*models.User, bool) return nil, false } - uid := SignedInID(ctx, sess) - - if uid <= 0 { - if setting.Service.EnableReverseProxyAuth { - webAuthUser := ctx.Req.Header.Get(setting.ReverseProxyAuthUser) - if len(webAuthUser) > 0 { - u, err := models.GetUserByName(webAuthUser) - if err != nil { - if !models.IsErrUserNotExist(err) { - log.Error(4, "GetUserByName: %v", err) - return nil, false - } - - // Check if enabled auto-registration. - if setting.Service.EnableReverseProxyAutoRegister { - u := &models.User{ - Name: webAuthUser, - Email: gouuid.NewV4().String() + "@localhost", - 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 - } - return u, false - } - } - return u, false - } + if uid := SignedInID(ctx, sess); uid > 0 { + user, err := models.GetUserByID(uid) + if err == nil { + return user, false + } else if !models.IsErrUserNotExist(err) { + log.Error(4, "GetUserById: %v", err) } + } - // Check with basic auth. - baHead := ctx.Req.Header.Get("Authorization") - if len(baHead) > 0 { - auths := strings.Fields(baHead) - if len(auths) == 2 && auths[0] == "Basic" { - uname, passwd, _ := base.BasicAuthDecode(auths[1]) - - u, err := models.UserSignIn(uname, passwd) - if err != nil { - if !models.IsErrUserNotExist(err) { - log.Error(4, "UserSignIn: %v", err) - } + if setting.Service.EnableReverseProxyAuth { + webAuthUser := ctx.Req.Header.Get(setting.ReverseProxyAuthUser) + if len(webAuthUser) > 0 { + u, err := models.GetUserByName(webAuthUser) + if err != nil { + if !models.IsErrUserNotExist(err) { + log.Error(4, "GetUserByName: %v", err) return nil, false } - return u, true + // Check if enabled auto-registration. + if setting.Service.EnableReverseProxyAutoRegister { + u := &models.User{ + Name: webAuthUser, + Email: gouuid.NewV4().String() + "@localhost", + 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 + } + return u, false + } } + return u, false } - return nil, false } - u, err := models.GetUserByID(uid) - if err != nil { - log.Error(4, "GetUserById: %v", err) - return nil, false + // Check with basic auth. + baHead := ctx.Req.Header.Get("Authorization") + if len(baHead) > 0 { + auths := strings.Fields(baHead) + if len(auths) == 2 && auths[0] == "Basic" { + uname, passwd, _ := base.BasicAuthDecode(auths[1]) + + u, err := models.UserSignIn(uname, passwd) + if err != nil { + if !models.IsErrUserNotExist(err) { + log.Error(4, "UserSignIn: %v", err) + } + return nil, false + } + + return u, true + } } - return u, false + return nil, false } // Form form binding interface