diff options
author | ᴜɴᴋɴᴡᴏɴ <u@gogs.io> | 2020-03-16 01:22:27 +0800 |
---|---|---|
committer | ᴜɴᴋɴᴡᴏɴ <u@gogs.io> | 2020-03-16 01:22:27 +0800 |
commit | 9e9ca66467116e9079a2639c00e9e623aca23015 (patch) | |
tree | dacdef5392608ff7107e4dd498959d4899e13e54 /internal/route/user | |
parent | 82ff0c5852f29daa5f95d965fd50665581e7ea3c (diff) |
refactor: unify error handling in routing layer
Diffstat (limited to 'internal/route/user')
-rw-r--r-- | internal/route/user/auth.go | 68 | ||||
-rw-r--r-- | internal/route/user/home.go | 62 | ||||
-rw-r--r-- | internal/route/user/profile.go | 15 | ||||
-rw-r--r-- | internal/route/user/setting.go | 88 |
4 files changed, 116 insertions, 117 deletions
diff --git a/internal/route/user/auth.go b/internal/route/user/auth.go index 88b0d1e8..5fef81c3 100644 --- a/internal/route/user/auth.go +++ b/internal/route/user/auth.go @@ -53,8 +53,8 @@ func AutoLogin(c *context.Context) (bool, error) { u, err := db.GetUserByName(uname) if err != nil { - if !errors.IsUserNotExist(err) { - return false, fmt.Errorf("GetUserByName: %v", err) + if !db.IsErrUserNotExist(err) { + return false, fmt.Errorf("get user by name: %v", err) } return false, nil } @@ -79,7 +79,7 @@ func Login(c *context.Context) { // Check auto-login isSucceed, err := AutoLogin(c) if err != nil { - c.ServerError("AutoLogin", err) + c.Error(err, "auto login") return } @@ -94,7 +94,7 @@ func Login(c *context.Context) { if tool.IsSameSiteURLPath(redirectTo) { c.Redirect(redirectTo) } else { - c.SubURLRedirect("/") + c.RedirectSubpath("/") } c.SetCookie("redirect_to", "", -1, conf.Server.Subpath) return @@ -103,7 +103,7 @@ func Login(c *context.Context) { // Display normal login page loginSources, err := db.ActivatedLoginSources() if err != nil { - c.ServerError("ActivatedLoginSources", err) + c.Error(err, "list activated login sources") return } c.Data["LoginSources"] = loginSources @@ -142,7 +142,7 @@ func afterLogin(c *context.Context, u *db.User, remember bool) { return } - c.SubURLRedirect("/") + c.RedirectSubpath("/") } func LoginPost(c *context.Context, f form.SignIn) { @@ -150,7 +150,7 @@ func LoginPost(c *context.Context, f form.SignIn) { loginSources, err := db.ActivatedLoginSources() if err != nil { - c.ServerError("ActivatedLoginSources", err) + c.Error(err, "list activated login sources") return } c.Data["LoginSources"] = loginSources @@ -163,7 +163,7 @@ func LoginPost(c *context.Context, f form.SignIn) { u, err := db.UserLogin(f.UserName, f.Password, f.LoginSource) if err != nil { switch err.(type) { - case errors.UserNotExist: + case db.ErrUserNotExist: c.FormErr("UserName", "Password") c.RenderWithErr(c.Tr("form.username_password_incorrect"), LOGIN, &f) case errors.LoginSourceMismatch: @@ -171,7 +171,7 @@ func LoginPost(c *context.Context, f form.SignIn) { c.RenderWithErr(c.Tr("form.auth_source_mismatch"), LOGIN, &f) default: - c.ServerError("UserLogin", err) + c.Error(err, "authenticate user") } for i := range loginSources { if loginSources[i].IsDefault { @@ -189,7 +189,7 @@ func LoginPost(c *context.Context, f form.SignIn) { c.Session.Set("twoFactorRemember", f.Remember) c.Session.Set("twoFactorUserID", u.ID) - c.SubURLRedirect("/user/login/two_factor") + c.RedirectSubpath("/user/login/two_factor") } func LoginTwoFactor(c *context.Context) { @@ -211,31 +211,31 @@ func LoginTwoFactorPost(c *context.Context) { t, err := db.GetTwoFactorByUserID(userID) if err != nil { - c.ServerError("GetTwoFactorByUserID", err) + c.Error(err, "get two factor by user ID") return } passcode := c.Query("passcode") valid, err := t.ValidateTOTP(passcode) if err != nil { - c.ServerError("ValidateTOTP", err) + c.Error(err, "validate TOTP") return } else if !valid { c.Flash.Error(c.Tr("settings.two_factor_invalid_passcode")) - c.SubURLRedirect("/user/login/two_factor") + c.RedirectSubpath("/user/login/two_factor") return } u, err := db.GetUserByID(userID) if err != nil { - c.ServerError("GetUserByID", err) + c.Error(err, "get user by ID") return } // Prevent same passcode from being reused if c.Cache.IsExist(u.TwoFactorCacheKey(passcode)) { c.Flash.Error(c.Tr("settings.two_factor_reused_passcode")) - c.SubURLRedirect("/user/login/two_factor") + c.RedirectSubpath("/user/login/two_factor") return } if err = c.Cache.Put(u.TwoFactorCacheKey(passcode), 1, 60); err != nil { @@ -265,16 +265,16 @@ func LoginTwoFactorRecoveryCodePost(c *context.Context) { if err := db.UseRecoveryCode(userID, c.Query("recovery_code")); err != nil { if errors.IsTwoFactorRecoveryCodeNotFound(err) { c.Flash.Error(c.Tr("auth.login_two_factor_invalid_recovery_code")) - c.SubURLRedirect("/user/login/two_factor_recovery_code") + c.RedirectSubpath("/user/login/two_factor_recovery_code") } else { - c.ServerError("UseRecoveryCode", err) + c.Error(err, "use recovery code") } return } u, err := db.GetUserByID(userID) if err != nil { - c.ServerError("GetUserByID", err) + c.Error(err, "get user by ID") return } afterLogin(c, u, c.Session.Get("twoFactorRemember").(bool)) @@ -286,7 +286,7 @@ func SignOut(c *context.Context) { c.SetCookie(conf.Security.CookieUsername, "", -1, conf.Server.Subpath) c.SetCookie(conf.Security.CookieRememberName, "", -1, conf.Server.Subpath) c.SetCookie(conf.Session.CSRFCookieName, "", -1, conf.Server.Subpath) - c.SubURLRedirect("/") + c.RedirectSubpath("/") } func SignUp(c *context.Context) { @@ -351,7 +351,7 @@ func SignUpPost(c *context.Context, cpt *captcha.Captcha, f form.Register) { c.FormErr("UserName") c.RenderWithErr(c.Tr("user.form.name_pattern_not_allowed", err.(db.ErrNamePatternNotAllowed).Pattern), SIGNUP, &f) default: - c.ServerError("CreateUser", err) + c.Error(err, "create user") } return } @@ -362,7 +362,7 @@ func SignUpPost(c *context.Context, cpt *captcha.Captcha, f form.Register) { u.IsAdmin = true u.IsActive = true if err := db.UpdateUser(u); err != nil { - c.ServerError("UpdateUser", err) + c.Error(err, "update user") return } } @@ -381,7 +381,7 @@ func SignUpPost(c *context.Context, cpt *captcha.Captcha, f form.Register) { return } - c.SubURLRedirect("/user/login") + c.RedirectSubpath("/user/login") } func Activate(c *context.Context) { @@ -416,11 +416,11 @@ func Activate(c *context.Context) { user.IsActive = true var err error if user.Rands, err = db.GetUserSalt(); err != nil { - c.ServerError("GetUserSalt", err) + c.Error(err, "get user salt") return } if err := db.UpdateUser(user); err != nil { - c.ServerError("UpdateUser", err) + c.Error(err, "update user") return } @@ -428,7 +428,7 @@ func Activate(c *context.Context) { c.Session.Set("uid", user.ID) c.Session.Set("uname", user.Name) - c.SubURLRedirect("/") + c.RedirectSubpath("/") return } @@ -443,14 +443,14 @@ func ActivateEmail(c *context.Context) { // Verify code. if email := db.VerifyActiveEmailCode(code, emailAddr); email != nil { if err := email.Activate(); err != nil { - c.ServerError("ActivateEmail", err) + c.Error(err, "activate email") } log.Trace("Email activated: %s", email.Email) c.Flash.Success(c.Tr("settings.add_email_success")) } - c.SubURLRedirect("/user/settings/email") + c.RedirectSubpath("/user/settings/email") } func ForgotPasswd(c *context.Context) { @@ -480,14 +480,14 @@ func ForgotPasswdPost(c *context.Context) { u, err := db.GetUserByEmail(emailAddr) if err != nil { - if errors.IsUserNotExist(err) { + if db.IsErrUserNotExist(err) { c.Data["Hours"] = conf.Auth.ActivateCodeLives / 60 c.Data["IsResetSent"] = true c.Success(FORGOT_PASSWORD) return - } else { - c.ServerError("GetUserByEmail", err) } + + c.Error(err, "get user by email") return } @@ -549,21 +549,21 @@ func ResetPasswdPost(c *context.Context) { u.Passwd = passwd var err error if u.Rands, err = db.GetUserSalt(); err != nil { - c.ServerError("GetUserSalt", err) + c.Error(err, "get user salt") return } if u.Salt, err = db.GetUserSalt(); err != nil { - c.ServerError("GetUserSalt", err) + c.Error(err, "get user salt") return } u.EncodePasswd() if err := db.UpdateUser(u); err != nil { - c.ServerError("UpdateUser", err) + c.Error(err, "update user") return } log.Trace("User password reset: %s", u.Name) - c.SubURLRedirect("/user/login") + c.RedirectSubpath("/user/login") return } diff --git a/internal/route/user/home.go b/internal/route/user/home.go index d2d23fba..5ba9bb17 100644 --- a/internal/route/user/home.go +++ b/internal/route/user/home.go @@ -7,6 +7,7 @@ package user import ( "bytes" "fmt" + "net/http" "github.com/unknwon/com" "github.com/unknwon/paginater" @@ -14,7 +15,6 @@ import ( "gogs.io/gogs/internal/conf" "gogs.io/gogs/internal/context" "gogs.io/gogs/internal/db" - "gogs.io/gogs/internal/db/errors" ) const ( @@ -33,7 +33,7 @@ func getDashboardContextUser(c *context.Context) *db.User { // Organization. org, err := db.GetUserByName(orgName) if err != nil { - c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err) + c.NotFoundOrError(err, "get user by name") return nil } ctxUser = org @@ -41,7 +41,7 @@ func getDashboardContextUser(c *context.Context) *db.User { c.Data["ContextUser"] = ctxUser if err := c.User.GetOrganizations(true); err != nil { - c.Handle(500, "GetOrganizations", err) + c.Error(err, "get organizations") return nil } c.Data["Orgs"] = c.User.Orgs @@ -55,7 +55,7 @@ func getDashboardContextUser(c *context.Context) *db.User { func retrieveFeeds(c *context.Context, ctxUser *db.User, userID int64, isProfile bool) { actions, err := db.GetFeeds(ctxUser, userID, c.QueryInt64("after_id"), isProfile) if err != nil { - c.Handle(500, "GetFeeds", err) + c.Error(err, "get feeds") return } @@ -68,10 +68,10 @@ func retrieveFeeds(c *context.Context, ctxUser *db.User, userID int64, isProfile if !ok { u, err := db.GetUserByName(act.ActUserName) if err != nil { - if errors.IsUserNotExist(err) { + if db.IsErrUserNotExist(err) { continue } - c.Handle(500, "GetUserByName", err) + c.Error(err, "get user by name") return } unameAvatars[act.ActUserName] = u.RelAvatarLink() @@ -100,7 +100,7 @@ func Dashboard(c *context.Context) { } if c.Req.Header.Get("X-AJAX") == "true" { - c.HTML(200, NEWS_FEED) + c.Success(NEWS_FEED) return } @@ -112,10 +112,10 @@ func Dashboard(c *context.Context) { if !ctxUser.IsOrganization() { collaborateRepos, err := c.User.GetAccessibleRepositories(conf.UI.User.RepoPagingNum) if err != nil { - c.Handle(500, "GetAccessibleRepositories", err) + c.Error(err, "get accessible repositories") return } else if err = db.RepositoryList(collaborateRepos).LoadAttributes(); err != nil { - c.Handle(500, "RepositoryList.LoadAttributes", err) + c.Error(err, "load attributes") return } c.Data["CollaborativeRepos"] = collaborateRepos @@ -127,18 +127,18 @@ func Dashboard(c *context.Context) { if ctxUser.IsOrganization() { repos, repoCount, err = ctxUser.GetUserRepositories(c.User.ID, 1, conf.UI.User.RepoPagingNum) if err != nil { - c.Handle(500, "GetUserRepositories", err) + c.Error(err, "get user repositories") return } mirrors, err = ctxUser.GetUserMirrorRepositories(c.User.ID) if err != nil { - c.Handle(500, "GetUserMirrorRepositories", err) + c.Error(err, "get user mirror repositories") return } } else { if err = ctxUser.GetRepositories(1, conf.UI.User.RepoPagingNum); err != nil { - c.Handle(500, "GetRepositories", err) + c.Error(err, "get repositories") return } repos = ctxUser.Repos @@ -146,7 +146,7 @@ func Dashboard(c *context.Context) { mirrors, err = ctxUser.GetMirrorRepositories() if err != nil { - c.Handle(500, "GetMirrorRepositories", err) + c.Error(err, "get mirror repositories") return } } @@ -155,13 +155,13 @@ func Dashboard(c *context.Context) { c.Data["MaxShowRepoNum"] = conf.UI.User.RepoPagingNum if err := db.MirrorRepositoryList(mirrors).LoadAttributes(); err != nil { - c.Handle(500, "MirrorRepositoryList.LoadAttributes", err) + c.Error(err, "load attributes") return } c.Data["MirrorCount"] = len(mirrors) c.Data["Mirrors"] = mirrors - c.HTML(200, DASHBOARD) + c.Success(DASHBOARD) } func Issues(c *context.Context) { @@ -216,12 +216,12 @@ func Issues(c *context.Context) { if ctxUser.IsOrganization() { repos, _, err = ctxUser.GetUserRepositories(c.User.ID, 1, ctxUser.NumRepos) if err != nil { - c.Handle(500, "GetRepositories", err) + c.Error(err, "get repositories") return } } else { if err := ctxUser.GetRepositories(1, c.User.NumRepos); err != nil { - c.Handle(500, "GetRepositories", err) + c.Error(err, "get repositories") return } repos = ctxUser.Repos @@ -255,7 +255,7 @@ func Issues(c *context.Context) { if !isPullList { userRepoIDs, err = db.FilterRepositoryWithIssues(userRepoIDs) if err != nil { - c.Handle(500, "FilterRepositoryWithIssues", err) + c.Error(err, "filter repositories with issues") return } } @@ -287,32 +287,32 @@ func Issues(c *context.Context) { issues, err := db.Issues(issueOptions) if err != nil { - c.Handle(500, "Issues", err) + c.Error(err, "list issues") return } if repoID > 0 { repo, err := db.GetRepositoryByID(repoID) if err != nil { - c.Handle(500, "GetRepositoryByID", fmt.Errorf("[#%d] %v", repoID, err)) + c.Error(err, "get repository by ID") return } if err = repo.GetOwner(); err != nil { - c.Handle(500, "GetOwner", fmt.Errorf("[#%d] %v", repoID, err)) + c.Error(err, "get owner") return } // Check if user has access to given repository. if !repo.IsOwnedBy(ctxUser.ID) && !repo.HasAccess(ctxUser.ID) { - c.Handle(404, "Issues", fmt.Errorf("#%d", repoID)) + c.NotFound() return } } for _, issue := range issues { if err = issue.Repo.GetOwner(); err != nil { - c.Handle(500, "GetOwner", fmt.Errorf("[#%d] %v", issue.RepoID, err)) + c.Error(err, "get owner") return } } @@ -341,13 +341,13 @@ func Issues(c *context.Context) { c.Data["State"] = "open" } - c.HTML(200, ISSUES) + c.Success(ISSUES) } func ShowSSHKeys(c *context.Context, uid int64) { keys, err := db.ListPublicKeys(uid) if err != nil { - c.Handle(500, "ListPublicKeys", err) + c.Error(err, "list public keys") return } @@ -356,7 +356,7 @@ func ShowSSHKeys(c *context.Context, uid int64) { buf.WriteString(keys[i].OmitEmail()) buf.WriteString("\n") } - c.PlainText(200, buf.Bytes()) + c.PlainText(http.StatusOK, buf.String()) } func showOrgProfile(c *context.Context) { @@ -382,7 +382,7 @@ func showOrgProfile(c *context.Context) { if c.IsLogged && !c.User.IsAdmin { repos, count, err = org.GetUserRepositories(c.User.ID, page, conf.UI.User.RepoPagingNum) if err != nil { - c.Handle(500, "GetUserRepositories", err) + c.Error(err, "get user repositories") return } c.Data["Repos"] = repos @@ -395,7 +395,7 @@ func showOrgProfile(c *context.Context) { PageSize: conf.UI.User.RepoPagingNum, }) if err != nil { - c.Handle(500, "GetRepositories", err) + c.Error(err, "get user repositories") return } c.Data["Repos"] = repos @@ -404,20 +404,20 @@ func showOrgProfile(c *context.Context) { c.Data["Page"] = paginater.New(int(count), conf.UI.User.RepoPagingNum, page, 5) if err := org.GetMembers(); err != nil { - c.Handle(500, "GetMembers", err) + c.Error(err, "get members") return } c.Data["Members"] = org.Members c.Data["Teams"] = org.Teams - c.HTML(200, ORG_HOME) + c.Success(ORG_HOME) } func Email2User(c *context.Context) { u, err := db.GetUserByEmail(c.Query("email")) if err != nil { - c.NotFoundOrServerError("GetUserByEmail", errors.IsUserNotExist, err) + c.NotFoundOrError(err, "get user by email") return } c.Redirect(conf.Server.Subpath + "/user/" + u.Name) diff --git a/internal/route/user/profile.go b/internal/route/user/profile.go index d18b35f8..89d84509 100644 --- a/internal/route/user/profile.go +++ b/internal/route/user/profile.go @@ -5,15 +5,14 @@ package user import ( - "fmt" - repo2 "gogs.io/gogs/internal/route/repo" "strings" "github.com/unknwon/paginater" + "gogs.io/gogs/internal/conf" "gogs.io/gogs/internal/context" "gogs.io/gogs/internal/db" - "gogs.io/gogs/internal/conf" + "gogs.io/gogs/internal/route/repo" "gogs.io/gogs/internal/tool" ) @@ -45,7 +44,7 @@ func Profile(c *context.Context, puser *context.ParamsUser) { orgs, err := db.GetOrgsByUserID(puser.ID, c.IsLogged && (c.User.IsAdmin || c.User.ID == puser.ID)) if err != nil { - c.ServerError("GetOrgsByUserIDDesc", err) + c.Error(err, "get organizations by user ID") return } @@ -73,7 +72,7 @@ func Profile(c *context.Context, puser *context.ParamsUser) { PageSize: conf.UI.User.RepoPagingNum, }) if err != nil { - c.ServerError("GetRepositories", err) + c.Error(err, "get user repositories") return } @@ -89,7 +88,7 @@ func Followers(c *context.Context, puser *context.ParamsUser) { c.PageIs("Followers") c.Data["CardsTitle"] = c.Tr("user.followers") c.Data["Owner"] = puser - repo2.RenderUserCards(c, puser.NumFollowers, puser.GetFollowers, FOLLOWERS) + repo.RenderUserCards(c, puser.NumFollowers, puser.GetFollowers, FOLLOWERS) } func Following(c *context.Context, puser *context.ParamsUser) { @@ -97,7 +96,7 @@ func Following(c *context.Context, puser *context.ParamsUser) { c.PageIs("Following") c.Data["CardsTitle"] = c.Tr("user.following") c.Data["Owner"] = puser - repo2.RenderUserCards(c, puser.NumFollowing, puser.GetFollowing, FOLLOWERS) + repo.RenderUserCards(c, puser.NumFollowing, puser.GetFollowing, FOLLOWERS) } func Stars(c *context.Context) { @@ -114,7 +113,7 @@ func Action(c *context.Context, puser *context.ParamsUser) { } if err != nil { - c.ServerError(fmt.Sprintf("Action (%s)", c.Params(":action")), err) + c.Errorf(err, "action %q", c.Params(":action")) return } diff --git a/internal/route/user/setting.go b/internal/route/user/setting.go index f09e4034..d8ae9e70 100644 --- a/internal/route/user/setting.go +++ b/internal/route/user/setting.go @@ -80,7 +80,7 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) { case db.IsErrNamePatternNotAllowed(err): msg = c.Tr("form.name_pattern_not_allowed") default: - c.ServerError("ChangeUserName", err) + c.Error(err, "change user name") return } @@ -106,12 +106,12 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) { c.RenderWithErr(msg, SETTINGS_PROFILE, &f) return } - c.ServerError("UpdateUser", err) + c.Errorf(err, "update user") return } c.Flash.Success(c.Tr("settings.update_profile_success")) - c.SubURLRedirect("/user/settings") + c.RedirectSubpath("/user/settings") } // FIXME: limit upload size @@ -169,7 +169,7 @@ func SettingsAvatarPost(c *context.Context, f form.Avatar) { c.Flash.Success(c.Tr("settings.update_avatar_success")) } - c.SubURLRedirect("/user/settings/avatar") + c.RedirectSubpath("/user/settings/avatar") } func SettingsDeleteAvatar(c *context.Context) { @@ -177,7 +177,7 @@ func SettingsDeleteAvatar(c *context.Context) { c.Flash.Error(fmt.Sprintf("Failed to delete avatar: %v", err)) } - c.SubURLRedirect("/user/settings/avatar") + c.RedirectSubpath("/user/settings/avatar") } func SettingsPassword(c *context.Context) { @@ -203,18 +203,18 @@ func SettingsPasswordPost(c *context.Context, f form.ChangePassword) { c.User.Passwd = f.Password var err error if c.User.Salt, err = db.GetUserSalt(); err != nil { - c.ServerError("GetUserSalt", err) + c.Errorf(err, "get user salt") return } c.User.EncodePasswd() if err := db.UpdateUser(c.User); err != nil { - c.ServerError("UpdateUser", err) + c.Errorf(err, "update user") return } c.Flash.Success(c.Tr("settings.change_password_success")) } - c.SubURLRedirect("/user/settings/password") + c.RedirectSubpath("/user/settings/password") } func SettingsEmails(c *context.Context) { @@ -223,7 +223,7 @@ func SettingsEmails(c *context.Context) { emails, err := db.GetEmailAddresses(c.User.ID) if err != nil { - c.ServerError("GetEmailAddresses", err) + c.Errorf(err, "get email addresses") return } c.Data["Emails"] = emails @@ -238,18 +238,18 @@ func SettingsEmailPost(c *context.Context, f form.AddEmail) { // Make emailaddress primary. if c.Query("_method") == "PRIMARY" { if err := db.MakeEmailPrimary(c.UserID(), &db.EmailAddress{ID: c.QueryInt64("id")}); err != nil { - c.ServerError("MakeEmailPrimary", err) + c.Errorf(err, "make email primary") return } - c.SubURLRedirect("/user/settings/email") + c.RedirectSubpath("/user/settings/email") return } // Add Email address. emails, err := db.GetEmailAddresses(c.User.ID) if err != nil { - c.ServerError("GetEmailAddresses", err) + c.Errorf(err, "get email addresses") return } c.Data["Emails"] = emails @@ -268,7 +268,7 @@ func SettingsEmailPost(c *context.Context, f form.AddEmail) { if db.IsErrEmailAlreadyUsed(err) { c.RenderWithErr(c.Tr("form.email_been_used"), SETTINGS_EMAILS, &f) } else { - c.ServerError("AddEmailAddress", err) + c.Errorf(err, "add email address") } return } @@ -285,7 +285,7 @@ func SettingsEmailPost(c *context.Context, f form.AddEmail) { c.Flash.Success(c.Tr("settings.add_email_success")) } - c.SubURLRedirect("/user/settings/email") + c.RedirectSubpath("/user/settings/email") } func DeleteEmail(c *context.Context) { @@ -293,7 +293,7 @@ func DeleteEmail(c *context.Context) { ID: c.QueryInt64("id"), UID: c.User.ID, }); err != nil { - c.ServerError("DeleteEmailAddress", err) + c.Errorf(err, "delete email address") return } @@ -309,7 +309,7 @@ func SettingsSSHKeys(c *context.Context) { keys, err := db.ListPublicKeys(c.User.ID) if err != nil { - c.ServerError("ListPublicKeys", err) + c.Errorf(err, "list public keys") return } c.Data["Keys"] = keys @@ -323,7 +323,7 @@ func SettingsSSHKeysPost(c *context.Context, f form.AddSSHKey) { keys, err := db.ListPublicKeys(c.User.ID) if err != nil { - c.ServerError("ListPublicKeys", err) + c.Errorf(err, "list public keys") return } c.Data["Keys"] = keys @@ -339,7 +339,7 @@ func SettingsSSHKeysPost(c *context.Context, f form.AddSSHKey) { c.Flash.Info(c.Tr("form.unable_verify_ssh_key")) } else { c.Flash.Error(c.Tr("form.invalid_ssh_key", err.Error())) - c.SubURLRedirect("/user/settings/ssh") + c.RedirectSubpath("/user/settings/ssh") return } } @@ -354,13 +354,13 @@ func SettingsSSHKeysPost(c *context.Context, f form.AddSSHKey) { c.FormErr("Title") c.RenderWithErr(c.Tr("settings.ssh_key_name_used"), SETTINGS_SSH_KEYS, &f) default: - c.ServerError("AddPublicKey", err) + c.Errorf(err, "add public key") } return } c.Flash.Success(c.Tr("settings.add_key_success", f.Title)) - c.SubURLRedirect("/user/settings/ssh") + c.RedirectSubpath("/user/settings/ssh") } func DeleteSSHKey(c *context.Context) { @@ -381,7 +381,7 @@ func SettingsSecurity(c *context.Context) { t, err := db.GetTwoFactorByUserID(c.UserID()) if err != nil && !errors.IsTwoFactorNotFound(err) { - c.ServerError("GetTwoFactorByUserID", err) + c.Errorf(err, "get two factor by user ID") return } c.Data["TwoFactor"] = t @@ -410,7 +410,7 @@ func SettingsTwoFactorEnable(c *context.Context) { AccountName: c.User.Email, }) if err != nil { - c.ServerError("Generate", err) + c.Errorf(err, "generate TOTP") return } } @@ -418,13 +418,13 @@ func SettingsTwoFactorEnable(c *context.Context) { img, err := key.Image(240, 240) if err != nil { - c.ServerError("Image", err) + c.Errorf(err, "generate image") return } var buf bytes.Buffer if err = png.Encode(&buf, img); err != nil { - c.ServerError("Encode", err) + c.Errorf(err, "encode image") return } c.Data["QRCode"] = template.URL("data:image/png;base64," + base64.StdEncoding.EncodeToString(buf.Bytes())) @@ -443,20 +443,20 @@ func SettingsTwoFactorEnablePost(c *context.Context) { if !totp.Validate(c.Query("passcode"), secret) { c.Flash.Error(c.Tr("settings.two_factor_invalid_passcode")) - c.SubURLRedirect("/user/settings/security/two_factor_enable") + c.RedirectSubpath("/user/settings/security/two_factor_enable") return } if err := db.NewTwoFactor(c.UserID(), secret); err != nil { c.Flash.Error(c.Tr("settings.two_factor_enable_error", err)) - c.SubURLRedirect("/user/settings/security/two_factor_enable") + c.RedirectSubpath("/user/settings/security/two_factor_enable") return } c.Session.Delete("twoFactorSecret") c.Session.Delete("twoFactorURL") c.Flash.Success(c.Tr("settings.two_factor_enable_success")) - c.SubURLRedirect("/user/settings/security/two_factor_recovery_codes") + c.RedirectSubpath("/user/settings/security/two_factor_recovery_codes") } func SettingsTwoFactorRecoveryCodes(c *context.Context) { @@ -470,7 +470,7 @@ func SettingsTwoFactorRecoveryCodes(c *context.Context) { recoveryCodes, err := db.GetRecoveryCodesByUserID(c.UserID()) if err != nil { - c.ServerError("GetRecoveryCodesByUserID", err) + c.Errorf(err, "get recovery codes by user ID") return } c.Data["RecoveryCodes"] = recoveryCodes @@ -490,7 +490,7 @@ func SettingsTwoFactorRecoveryCodesPost(c *context.Context) { c.Flash.Success(c.Tr("settings.two_factor_regenerate_recovery_codes_success")) } - c.SubURLRedirect("/user/settings/security/two_factor_recovery_codes") + c.RedirectSubpath("/user/settings/security/two_factor_recovery_codes") } func SettingsTwoFactorDisable(c *context.Context) { @@ -500,7 +500,7 @@ func SettingsTwoFactorDisable(c *context.Context) { } if err := db.DeleteTwoFactor(c.UserID()); err != nil { - c.ServerError("DeleteTwoFactor", err) + c.Errorf(err, "delete two factor") return } @@ -516,11 +516,11 @@ func SettingsRepos(c *context.Context) { repos, err := db.GetUserAndCollaborativeRepositories(c.User.ID) if err != nil { - c.ServerError("GetUserAndCollaborativeRepositories", err) + c.Errorf(err, "get user and collaborative repositories") return } if err = db.RepositoryList(repos).LoadAttributes(); err != nil { - c.ServerError("LoadAttributes", err) + c.Errorf(err, "load attributes") return } c.Data["Repos"] = repos @@ -531,12 +531,12 @@ func SettingsRepos(c *context.Context) { func SettingsLeaveRepo(c *context.Context) { repo, err := db.GetRepositoryByID(c.QueryInt64("id")) if err != nil { - c.NotFoundOrServerError("GetRepositoryByID", errors.IsRepoNotExist, err) + c.NotFoundOrError(err, "get repository by ID") return } if err = repo.DeleteCollaboration(c.User.ID); err != nil { - c.ServerError("DeleteCollaboration", err) + c.Errorf(err, "delete collaboration") return } @@ -552,7 +552,7 @@ func SettingsOrganizations(c *context.Context) { orgs, err := db.GetOrgsByUserID(c.User.ID, true) if err != nil { - c.ServerError("GetOrgsByUserID", err) + c.Errorf(err, "get organizations by user ID") return } c.Data["Orgs"] = orgs @@ -565,7 +565,7 @@ func SettingsLeaveOrganization(c *context.Context) { if db.IsErrLastOrgOwner(err) { c.Flash.Error(c.Tr("form.last_org_owner")) } else { - c.ServerError("RemoveOrgUser", err) + c.Errorf(err, "remove organization user") return } } @@ -581,7 +581,7 @@ func SettingsApplications(c *context.Context) { tokens, err := db.ListAccessTokens(c.User.ID) if err != nil { - c.ServerError("ListAccessTokens", err) + c.Errorf(err, "list access tokens") return } c.Data["Tokens"] = tokens @@ -596,7 +596,7 @@ func SettingsApplicationsPost(c *context.Context, f form.NewAccessToken) { if c.HasError() { tokens, err := db.ListAccessTokens(c.User.ID) if err != nil { - c.ServerError("ListAccessTokens", err) + c.Errorf(err, "list access tokens") return } @@ -612,16 +612,16 @@ func SettingsApplicationsPost(c *context.Context, f form.NewAccessToken) { if err := db.NewAccessToken(t); err != nil { if errors.IsAccessTokenNameAlreadyExist(err) { c.Flash.Error(c.Tr("settings.token_name_exists")) - c.SubURLRedirect("/user/settings/applications") + c.RedirectSubpath("/user/settings/applications") } else { - c.ServerError("NewAccessToken", err) + c.Errorf(err, "new access token") } return } c.Flash.Success(c.Tr("settings.generate_token_succees")) c.Flash.Info(t.Sha1) - c.SubURLRedirect("/user/settings/applications") + c.RedirectSubpath("/user/settings/applications") } func SettingsDeleteApplication(c *context.Context) { @@ -642,10 +642,10 @@ func SettingsDelete(c *context.Context) { if c.Req.Method == "POST" { if _, err := db.UserLogin(c.User.Name, c.Query("password"), c.User.LoginSource); err != nil { - if errors.IsUserNotExist(err) { + if db.IsErrUserNotExist(err) { c.RenderWithErr(c.Tr("form.enterred_invalid_password"), SETTINGS_DELETE, nil) } else { - c.ServerError("UserLogin", err) + c.Errorf(err, "authenticate user") } return } @@ -659,7 +659,7 @@ func SettingsDelete(c *context.Context) { c.Flash.Error(c.Tr("form.still_has_org")) c.Redirect(conf.Server.Subpath + "/user/settings/delete") default: - c.ServerError("DeleteUser", err) + c.Errorf(err, "delete user") } } else { log.Trace("Account deleted: %s", c.User.Name) |