diff options
author | Unknwon <joe2010xtmf@163.com> | 2014-08-14 14:12:21 +0800 |
---|---|---|
committer | Unknwon <joe2010xtmf@163.com> | 2014-08-14 14:12:21 +0800 |
commit | 5acc948562547b393ba1e89b012e7421143c6dd8 (patch) | |
tree | 657653112b206fb01ff184bd30cb680b5b5a21fa /routers | |
parent | 2935ee440c82a7f998a74159255cc38924f6e0bc (diff) | |
download | gitea-5acc948562547b393ba1e89b012e7421143c6dd8.tar.gz gitea-5acc948562547b393ba1e89b012e7421143c6dd8.zip |
Page: `/org/:orgname/settings`
Diffstat (limited to 'routers')
-rw-r--r-- | routers/org/org.go | 116 | ||||
-rw-r--r-- | routers/org/setting.go | 99 | ||||
-rw-r--r-- | routers/user/setting.go | 4 |
3 files changed, 106 insertions, 113 deletions
diff --git a/routers/org/org.go b/routers/org/org.go index fed1fd5fbc..254ba8148f 100644 --- a/routers/org/org.go +++ b/routers/org/org.go @@ -13,30 +13,20 @@ import ( ) const ( - HOME base.TplName = "org/home" - CREATE base.TplName = "org/create" - SETTINGS base.TplName = "org/settings" + HOME base.TplName = "org/home" + CREATE base.TplName = "org/create" ) func Home(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Params(":org") + org := ctx.Org.Organization + ctx.Data["Title"] = org.Name - org, err := models.GetUserByName(ctx.Params(":org")) - if err != nil { - if err == models.ErrUserNotExist { - ctx.Handle(404, "GetUserByName", err) - } else { - ctx.Handle(500, "GetUserByName", err) - } - return - } - ctx.Data["Org"] = org - - ctx.Data["Repos"], err = models.GetRepositories(org.Id, ctx.IsSigned && org.IsOrgMember(ctx.User.Id)) + repos, err := models.GetRepositories(org.Id, ctx.IsSigned && org.IsOrgMember(ctx.User.Id)) if err != nil { ctx.Handle(500, "GetRepositories", err) return } + ctx.Data["Repos"] = repos if err = org.GetMembers(); err != nil { ctx.Handle(500, "GetMembers", err) @@ -94,97 +84,3 @@ func CreatePost(ctx *middleware.Context, form auth.CreateOrgForm) { ctx.Redirect("/org/" + form.OrgName + "/dashboard") } - -func Settings(ctx *middleware.Context) { - ctx.Data["Title"] = "Settings" - - org, err := models.GetUserByName(ctx.Params(":org")) - if err != nil { - if err == models.ErrUserNotExist { - ctx.Handle(404, "org.Settings(GetUserByName)", err) - } else { - ctx.Handle(500, "org.Settings(GetUserByName)", err) - } - return - } - ctx.Data["Org"] = org - - ctx.HTML(200, SETTINGS) -} - -func SettingsPost(ctx *middleware.Context, form auth.OrgSettingForm) { - ctx.Data["Title"] = "Settings" - - org, err := models.GetUserByName(ctx.Params(":org")) - if err != nil { - if err == models.ErrUserNotExist { - ctx.Handle(404, "org.SettingsPost(GetUserByName)", err) - } else { - ctx.Handle(500, "org.SettingsPost(GetUserByName)", err) - } - return - } - ctx.Data["Org"] = org - - if ctx.HasError() { - ctx.HTML(200, SETTINGS) - return - } - - org.FullName = form.DisplayName - org.Email = form.Email - org.Description = form.Description - org.Website = form.Website - org.Location = form.Location - if err = models.UpdateUser(org); err != nil { - ctx.Handle(500, "org.SettingsPost(UpdateUser)", err) - return - } - log.Trace("%s Organization setting updated: %s", ctx.Req.RequestURI, org.LowerName) - ctx.Flash.Success("Organization profile has been successfully updated.") - ctx.Redirect("/org/" + org.Name + "/settings") -} - -func DeletePost(ctx *middleware.Context) { - ctx.Data["Title"] = "Settings" - - org, err := models.GetUserByName(ctx.Params(":org")) - if err != nil { - if err == models.ErrUserNotExist { - ctx.Handle(404, "org.DeletePost(GetUserByName)", err) - } else { - ctx.Handle(500, "org.DeletePost(GetUserByName)", err) - } - return - } - ctx.Data["Org"] = org - - if !org.IsOrgOwner(ctx.User.Id) { - ctx.Error(403) - return - } - - tmpUser := models.User{ - Passwd: ctx.Query("password"), - Salt: ctx.User.Salt, - } - tmpUser.EncodePasswd() - if tmpUser.Passwd != ctx.User.Passwd { - ctx.Flash.Error("Password is not correct. Make sure you are owner of this account.") - } else { - if err := models.DeleteOrganization(org); err != nil { - switch err { - case models.ErrUserOwnRepos: - ctx.Flash.Error("This organization still have ownership of repository, you have to delete or transfer them first.") - default: - ctx.Handle(500, "org.DeletePost(DeleteOrganization)", err) - return - } - } else { - ctx.Redirect("/") - return - } - } - - ctx.Redirect("/org/" + org.Name + "/settings") -} diff --git a/routers/org/setting.go b/routers/org/setting.go new file mode 100644 index 0000000000..0ddf0065cc --- /dev/null +++ b/routers/org/setting.go @@ -0,0 +1,99 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package org + +import ( + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/auth" + "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/modules/log" + "github.com/gogits/gogs/modules/middleware" +) + +const ( + SETTINGS_OPTIONS base.TplName = "org/settings/options" + SETTINGS_DELETE base.TplName = "org/settings/delete" +) + +func Settings(ctx *middleware.Context) { + ctx.Data["Title"] = ctx.Tr("org.settings") + ctx.Data["PageIsSettingsOptions"] = true + ctx.HTML(200, SETTINGS_OPTIONS) +} + +func SettingsPost(ctx *middleware.Context, form auth.UpdateOrgSettingForm) { + ctx.Data["Title"] = ctx.Tr("org.settings") + ctx.Data["PageIsSettingsOptions"] = true + + if ctx.HasError() { + ctx.HTML(200, SETTINGS_OPTIONS) + return + } + + org := ctx.Org.Organization + + // Check if organization name has been changed. + if org.Name != form.OrgUserName { + isExist, err := models.IsUserExist(form.OrgUserName) + if err != nil { + ctx.Handle(500, "IsUserExist", err) + return + } else if isExist { + ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SETTINGS_OPTIONS, &form) + return + } else if err = models.ChangeUserName(org, form.OrgUserName); err != nil { + if err == models.ErrUserNameIllegal { + ctx.Flash.Error(ctx.Tr("form.illegal_username")) + ctx.Redirect("/org/" + org.LowerName + "/settings") + return + } else { + ctx.Handle(500, "ChangeUserName", err) + } + return + } + log.Trace("Organization name changed: %s -> %s", org.Name, form.OrgUserName) + org.Name = form.OrgUserName + } + + org.FullName = form.OrgFullName + org.Email = form.Email + org.Description = form.Description + org.Website = form.Website + org.Location = form.Location + org.Avatar = base.EncodeMd5(form.Avatar) + org.AvatarEmail = form.Avatar + if err := models.UpdateUser(org); err != nil { + ctx.Handle(500, "UpdateUser", err) + return + } + log.Trace("Organization setting updated: %s", org.Name) + ctx.Flash.Success(ctx.Tr("org.settings.update_setting_success")) + ctx.Redirect("/org/" + org.Name + "/settings") +} + +func SettingsDelete(ctx *middleware.Context) { + ctx.Data["Title"] = ctx.Tr("org.settings") + ctx.Data["PageIsSettingsDelete"] = true + + org := ctx.Org.Organization + if ctx.Req.Method == "POST" { + // TODO: validate password. + if err := models.DeleteOrganization(org); err != nil { + switch err { + case models.ErrUserOwnRepos: + ctx.Flash.Error(ctx.Tr("form.org_still_own_repo")) + ctx.Redirect("/org/" + org.LowerName + "/settings/delete") + default: + ctx.Handle(500, "DeleteOrganization", err) + } + } else { + log.Trace("Organization deleted: %s", ctx.User.Name) + ctx.Redirect("/") + } + return + } + + ctx.HTML(200, SETTINGS_DELETE) +} diff --git a/routers/user/setting.go b/routers/user/setting.go index 739a30d032..e091bc4381 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -252,16 +252,14 @@ func SettingsDelete(ctx *middleware.Context) { case models.ErrUserOwnRepos: ctx.Flash.Error(ctx.Tr("form.still_own_repo")) ctx.Redirect("/user/settings/delete") - return default: ctx.Handle(500, "DeleteUser", err) - return } } else { log.Trace("Account deleted: %s", ctx.User.Name) ctx.Redirect("/") - return } + return } ctx.HTML(200, SETTINGS_DELETE) |