summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorUnknwon <joe2010xtmf@163.com>2014-08-14 14:12:21 +0800
committerUnknwon <joe2010xtmf@163.com>2014-08-14 14:12:21 +0800
commit5acc948562547b393ba1e89b012e7421143c6dd8 (patch)
tree657653112b206fb01ff184bd30cb680b5b5a21fa /routers
parent2935ee440c82a7f998a74159255cc38924f6e0bc (diff)
downloadgitea-5acc948562547b393ba1e89b012e7421143c6dd8.tar.gz
gitea-5acc948562547b393ba1e89b012e7421143c6dd8.zip
Page: `/org/:orgname/settings`
Diffstat (limited to 'routers')
-rw-r--r--routers/org/org.go116
-rw-r--r--routers/org/setting.go99
-rw-r--r--routers/user/setting.go4
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)