aboutsummaryrefslogtreecommitdiff
path: root/routers/user
diff options
context:
space:
mode:
authorDon Bowman <don.waterloo@gmail.com>2015-08-12 21:10:00 +0000
committerDon Bowman <don.waterloo@gmail.com>2015-08-12 21:10:00 +0000
commit1cb46ede1acf4f8527e64fcae7e92672cad764b2 (patch)
treefabb54ee5f040be2a4ee5c95f87cb3e9fbf7bdea /routers/user
parent9e6bd31d76aa6d6495a2144466af78773f34d07c (diff)
parentaede5cdb04fdbf74d9c602062fdece9f408e90f4 (diff)
Merge branch 'master' of https://github.com/gogits/gogs
Conflicts: routers/repo/download.go
Diffstat (limited to 'routers/user')
-rw-r--r--routers/user/auth.go21
-rw-r--r--routers/user/home.go32
-rw-r--r--routers/user/setting.go56
3 files changed, 49 insertions, 60 deletions
diff --git a/routers/user/auth.go b/routers/user/auth.go
index 5dacaf8c..4b29a29e 100644
--- a/routers/user/auth.go
+++ b/routers/user/auth.go
@@ -60,7 +60,7 @@ func SignIn(ctx *middleware.Context) {
u, err := models.GetUserByName(uname)
if err != nil {
- if err != models.ErrUserNotExist {
+ if !models.IsErrUserNotExist(err) {
ctx.Handle(500, "GetUserByName", err)
} else {
ctx.HTML(200, SIGNIN)
@@ -105,7 +105,7 @@ func SignInPost(ctx *middleware.Context, form auth.SignInForm) {
u, err := models.UserSignIn(form.UserName, form.Password)
if err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
ctx.RenderWithErr(ctx.Tr("form.username_password_incorrect"), SIGNIN, &form)
} else {
ctx.Handle(500, "UserSignIn", err)
@@ -249,16 +249,19 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe
}
if err := models.CreateUser(u); err != nil {
- switch err {
- case models.ErrUserAlreadyExist:
+ switch {
+ case models.IsErrUserAlreadyExist(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SIGNUP, &form)
- case models.ErrEmailAlreadyUsed:
+ case models.IsErrEmailAlreadyUsed(err):
ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SIGNUP, &form)
- case models.ErrUserNameIllegal:
+ case models.IsErrNameReserved(err):
ctx.Data["Err_UserName"] = true
- ctx.RenderWithErr(ctx.Tr("form.illegal_username"), SIGNUP, &form)
+ ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), SIGNUP, &form)
+ case models.IsErrNamePatternNotAllowed(err):
+ ctx.Data["Err_UserName"] = true
+ ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), SIGNUP, &form)
default:
ctx.Handle(500, "CreateUser", err)
}
@@ -325,7 +328,7 @@ func Activate(ctx *middleware.Context) {
user.IsActive = true
user.Rands = models.GetUserSalt()
if err := models.UpdateUser(user); err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
ctx.Error(404)
} else {
ctx.Handle(500, "UpdateUser", err)
@@ -388,7 +391,7 @@ func ForgotPasswdPost(ctx *middleware.Context) {
email := ctx.Query("email")
u, err := models.GetUserByEmail(email)
if err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("auth.email_not_associate"), FORGOT_PASSWORD, nil)
} else {
diff --git a/routers/user/home.go b/routers/user/home.go
index 3484e780..c38dba52 100644
--- a/routers/user/home.go
+++ b/routers/user/home.go
@@ -38,7 +38,7 @@ func Dashboard(ctx *middleware.Context) {
// Organization.
org, err := models.GetUserByName(orgName)
if err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
ctx.Handle(404, "GetUserByName", err)
} else {
ctx.Handle(500, "GetUserByName", err)
@@ -115,7 +115,7 @@ func Dashboard(ctx *middleware.Context) {
// FIXME: cache results?
u, err := models.GetUserByName(act.ActUserName)
if err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
continue
}
ctx.Handle(500, "GetUserByName", err)
@@ -152,6 +152,7 @@ func ShowSSHKeys(ctx *middleware.Context, uid int64) {
var buf bytes.Buffer
for i := range keys {
buf.WriteString(keys[i].OmitEmail())
+ buf.WriteString("\n")
}
ctx.RenderData(200, buf.Bytes())
}
@@ -175,7 +176,7 @@ func Profile(ctx *middleware.Context) {
u, err := models.GetUserByName(uname)
if err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
ctx.Handle(404, "GetUserByName", err)
} else {
ctx.Handle(500, "GetUserByName", err)
@@ -193,11 +194,6 @@ func Profile(ctx *middleware.Context) {
ctx.Redirect(setting.AppSubUrl + "/org/" + u.Name)
return
}
-
- // For security reason, hide e-mail address for anonymous visitors.
- if !ctx.IsSigned {
- u.Email = ""
- }
ctx.Data["Owner"] = u
tab := ctx.Query("tab")
@@ -227,7 +223,7 @@ func Profile(ctx *middleware.Context) {
// FIXME: cache results?
u, err := models.GetUserByName(act.ActUserName)
if err != nil {
- if err == models.ErrUserNotExist {
+ if models.IsErrUserNotExist(err) {
continue
}
ctx.Handle(500, "GetUserByName", err)
@@ -251,17 +247,17 @@ func Profile(ctx *middleware.Context) {
func Email2User(ctx *middleware.Context) {
u, err := models.GetUserByEmail(ctx.Query("email"))
if err != nil {
- if err == models.ErrUserNotExist {
- ctx.Handle(404, "user.Email2User(GetUserByEmail)", err)
+ if models.IsErrUserNotExist(err) {
+ ctx.Handle(404, "GetUserByEmail", err)
} else {
- ctx.Handle(500, "user.Email2User(GetUserByEmail)", err)
+ ctx.Handle(500, "GetUserByEmail", err)
}
return
}
ctx.Redirect(setting.AppSubUrl + "/user/" + u.Name)
}
-func Issues(ctx *middleware.Context) {
+func Issues(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Tr("issues")
ctx.Data["PageIsDashboard"] = true
ctx.Data["PageIsIssues"] = true
@@ -354,13 +350,13 @@ func Issues(ctx *middleware.Context) {
}
}
- issues[i].Repo, err = models.GetRepositoryById(issues[i].RepoId)
+ issues[i].Repo, err = models.GetRepositoryById(issues[i].RepoID)
if err != nil {
if models.IsErrRepoNotExist(err) {
- log.Warn("user.Issues(GetRepositoryById #%d): repository not exist", issues[i].RepoId)
+ log.Warn("GetRepositoryById[%d]: repository not exist", issues[i].RepoID)
continue
} else {
- ctx.Handle(500, fmt.Sprintf("user.Issues(GetRepositoryById #%d)", issues[i].RepoId), err)
+ ctx.Handle(500, fmt.Sprintf("GetRepositoryById[%d]", issues[i].RepoID), err)
return
}
}
@@ -388,8 +384,8 @@ func Issues(ctx *middleware.Context) {
} else {
ctx.Data["ShowCount"] = issueStats.OpenCount
}
-
+
ctx.Data["ContextUser"] = ctx.User
-
+
ctx.HTML(200, ISSUES)
}
diff --git a/routers/user/setting.go b/routers/user/setting.go
index 20e6c060..de9af655 100644
--- a/routers/user/setting.go
+++ b/routers/user/setting.go
@@ -50,21 +50,20 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) {
// Check if user name has been changed.
if ctx.User.Name != form.UserName {
- isExist, err := models.IsUserExist(ctx.User.Id, form.UserName)
- if err != nil {
- ctx.Handle(500, "IsUserExist", err)
- return
- } else if isExist {
- ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SETTINGS_PROFILE, &form)
- return
- } else if err = models.ChangeUserName(ctx.User, form.UserName); err != nil {
- switch err {
- case models.ErrUserNameIllegal:
- ctx.Flash.Error(ctx.Tr("form.illegal_username"))
+ if err := models.ChangeUserName(ctx.User, form.UserName); err != nil {
+ switch {
+ case models.IsErrUserAlreadyExist(err):
+ ctx.Flash.Error(ctx.Tr("form.username_been_taken"))
ctx.Redirect(setting.AppSubUrl + "/user/settings")
- case models.ErrEmailAlreadyUsed:
+ case models.IsErrEmailAlreadyUsed(err):
ctx.Flash.Error(ctx.Tr("form.email_been_used"))
ctx.Redirect(setting.AppSubUrl + "/user/settings")
+ case models.IsErrNameReserved(err):
+ ctx.Flash.Error(ctx.Tr("user.form.name_reserved"))
+ ctx.Redirect(setting.AppSubUrl + "/user/settings")
+ case models.IsErrNamePatternNotAllowed(err):
+ ctx.Flash.Error(ctx.Tr("user.form.name_pattern_not_allowed"))
+ ctx.Redirect(setting.AppSubUrl + "/user/settings")
default:
ctx.Handle(500, "ChangeUserName", err)
}
@@ -204,7 +203,7 @@ func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) {
}
if err := models.AddEmailAddress(e); err != nil {
- if err == models.ErrEmailAlreadyUsed {
+ if models.IsErrEmailAlreadyUsed(err) {
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_EMAILS, &form)
return
}
@@ -306,7 +305,7 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
return
}
- if err = models.DeletePublicKey(&models.PublicKey{Id: id}); err != nil {
+ if err = models.DeletePublicKey(&models.PublicKey{ID: id}); err != nil {
ctx.Handle(500, "DeletePublicKey", err)
} else {
log.Trace("SSH key deleted: %s", ctx.User.Name)
@@ -322,15 +321,8 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
return
}
- // Parse openssh style string from form content
- content, err := models.ParseKeyString(form.Content)
+ content, err := models.CheckPublicKeyString(form.Content)
if err != nil {
- ctx.Flash.Error(ctx.Tr("form.invalid_ssh_key", err.Error()))
- ctx.Redirect(setting.AppSubUrl + "/user/settings/ssh")
- return
- }
-
- if ok, err := models.CheckPublicKeyString(content); !ok {
if err == models.ErrKeyUnableVerify {
ctx.Flash.Info(ctx.Tr("form.unable_verify_ssh_key"))
} else {
@@ -340,21 +332,19 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
}
}
- k := &models.PublicKey{
- OwnerId: ctx.User.Id,
- Name: form.SSHTitle,
- Content: content,
- }
- if err := models.AddPublicKey(k); err != nil {
- if err == models.ErrKeyAlreadyExist {
- ctx.RenderWithErr(ctx.Tr("form.ssh_key_been_used"), SETTINGS_SSH_KEYS, &form)
- return
+ if err = models.AddPublicKey(ctx.User.Id, form.Title, content); err != nil {
+ switch {
+ case models.IsErrKeyAlreadyExist(err):
+ ctx.RenderWithErr(ctx.Tr("settings.ssh_key_been_used"), SETTINGS_SSH_KEYS, &form)
+ case models.IsErrKeyNameAlreadyUsed(err):
+ ctx.RenderWithErr(ctx.Tr("settings.ssh_key_name_used"), SETTINGS_SSH_KEYS, &form)
+ default:
+ ctx.Handle(500, "AddPublicKey", err)
}
- ctx.Handle(500, "ssh.AddPublicKey", err)
return
} else {
log.Trace("SSH key added: %s", ctx.User.Name)
- ctx.Flash.Success(ctx.Tr("settings.add_key_success"))
+ ctx.Flash.Success(ctx.Tr("settings.add_key_success", form.Title))
ctx.Redirect(setting.AppSubUrl + "/user/settings/ssh")
return
}