summaryrefslogtreecommitdiffstats
path: root/routers/admin
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2015-09-13 11:07:21 -0400
committerUnknwon <u@gogs.io>2015-09-13 11:07:21 -0400
commit83e747bfda43c2c8fa0aceb2c989d42fe5ca1582 (patch)
tree1dfee9128010bb08ad2177c24fd1c5c8c53d45cd /routers/admin
parente5ed5904c62d9a618cb6f4ad852b021a02c3481e (diff)
downloadgitea-83e747bfda43c2c8fa0aceb2c989d42fe5ca1582.tar.gz
gitea-83e747bfda43c2c8fa0aceb2c989d42fe5ca1582.zip
#697 and #1606 and new admin edit user UI
Diffstat (limited to 'routers/admin')
-rw-r--r--routers/admin/users.go73
1 files changed, 43 insertions, 30 deletions
diff --git a/routers/admin/users.go b/routers/admin/users.go
index dfa4d5ef28..036424f140 100644
--- a/routers/admin/users.go
+++ b/routers/admin/users.go
@@ -122,57 +122,74 @@ func NewUserPost(ctx *middleware.Context, form auth.AdminCrateUserForm) {
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id))
}
-func EditUser(ctx *middleware.Context) {
- ctx.Data["Title"] = ctx.Tr("admin.users.edit_account")
- ctx.Data["PageIsAdmin"] = true
- ctx.Data["PageIsAdminUsers"] = true
-
- uid := com.StrTo(ctx.Params(":userid")).MustInt64()
- if uid == 0 {
- ctx.Handle(404, "EditUser", nil)
- return
- }
-
- u, err := models.GetUserByID(uid)
+func prepareUserInfo(ctx *middleware.Context) *models.User {
+ u, err := models.GetUserByID(ctx.ParamsInt64(":userid"))
if err != nil {
ctx.Handle(500, "GetUserByID", err)
- return
+ return nil
}
ctx.Data["User"] = u
+ if u.LoginSource > 0 {
+ ctx.Data["LoginSource"], err = models.GetLoginSourceByID(u.LoginSource)
+ if err != nil {
+ ctx.Handle(500, "GetLoginSourceByID", err)
+ return nil
+ }
+ } else {
+ ctx.Data["LoginSource"] = &models.LoginSource{}
+ }
+
sources, err := models.LoginSources()
if err != nil {
ctx.Handle(500, "LoginSources", err)
- return
+ return nil
}
- ctx.Data["LoginSources"] = sources
- ctx.HTML(200, USER_EDIT)
+ ctx.Data["Sources"] = sources
+
+ return u
}
-func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
+func EditUser(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Tr("admin.users.edit_account")
ctx.Data["PageIsAdmin"] = true
ctx.Data["PageIsAdminUsers"] = true
- uid := com.StrTo(ctx.Params(":userid")).MustInt64()
- if uid == 0 {
- ctx.Handle(404, "EditUser", nil)
+ prepareUserInfo(ctx)
+ if ctx.Written() {
return
}
- u, err := models.GetUserByID(uid)
- if err != nil {
- ctx.Handle(500, "GetUserById", err)
+ ctx.HTML(200, USER_EDIT)
+}
+
+func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
+ ctx.Data["Title"] = ctx.Tr("admin.users.edit_account")
+ ctx.Data["PageIsAdmin"] = true
+ ctx.Data["PageIsAdminUsers"] = true
+
+ u := prepareUserInfo(ctx)
+ if ctx.Written() {
return
}
- ctx.Data["User"] = u
if ctx.HasError() {
ctx.HTML(200, USER_EDIT)
return
}
- // FIXME: need password length check
+ fields := strings.Split(form.LoginType, "-")
+ if len(fields) == 2 {
+ loginType := models.LoginType(com.StrTo(fields[0]).MustInt())
+ loginSource := com.StrTo(fields[1]).MustInt64()
+
+ if u.LoginSource != loginSource {
+ u.LoginSource = loginSource
+ u.LoginType = loginType
+ u.LoginName = form.LoginName
+ }
+ }
+
if len(form.Password) > 0 {
u.Passwd = form.Password
u.Salt = models.GetUserSalt()
@@ -183,11 +200,6 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
u.Email = form.Email
u.Website = form.Website
u.Location = form.Location
- if len(form.Avatar) == 0 {
- form.Avatar = form.Email
- }
- u.Avatar = base.EncodeMd5(form.Avatar)
- u.AvatarEmail = form.Avatar
u.IsActive = form.Active
u.IsAdmin = form.Admin
u.AllowGitHook = form.AllowGitHook
@@ -202,6 +214,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
return
}
log.Trace("Account profile updated by admin(%s): %s", ctx.User.Name, u.Name)
+
ctx.Flash.Success(ctx.Tr("admin.users.update_profile_success"))
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid"))
}