aboutsummaryrefslogtreecommitdiff
path: root/internal/route/user
diff options
context:
space:
mode:
authorᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-03-16 01:22:27 +0800
committerᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-03-16 01:22:27 +0800
commit9e9ca66467116e9079a2639c00e9e623aca23015 (patch)
treedacdef5392608ff7107e4dd498959d4899e13e54 /internal/route/user
parent82ff0c5852f29daa5f95d965fd50665581e7ea3c (diff)
refactor: unify error handling in routing layer
Diffstat (limited to 'internal/route/user')
-rw-r--r--internal/route/user/auth.go68
-rw-r--r--internal/route/user/home.go62
-rw-r--r--internal/route/user/profile.go15
-rw-r--r--internal/route/user/setting.go88
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)