aboutsummaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorSchwobaland <Schwobaland@users.noreply.github.com>2016-12-31 03:33:30 +0100
committerLunny Xiao <xiaolunwen@gmail.com>2016-12-31 10:33:30 +0800
commitc0904f1942071ce870ab9d87bd6c7f49f614ee82 (patch)
tree145eff1c1fae0b43a127f0ae2c232c1ebfe2af4e /routers
parentb75450ad361bd7c468af5a01f42d203010206f62 (diff)
downloadgitea-c0904f1942071ce870ab9d87bd6c7f49f614ee82.tar.gz
gitea-c0904f1942071ce870ab9d87bd6c7f49f614ee82.zip
Restrict creating organisations by user (#193)
* restrict creating organizations based on right on user * revert bindata.go * reverse vendor lib * revert goimports change * set AllowCreateOrganization default value to true * revert locale * added default value for AllowCreateOrganization * fix typo in migration-comment * fix comment * add coments in migration
Diffstat (limited to 'routers')
-rw-r--r--routers/admin/users.go1
-rw-r--r--routers/org/org.go8
2 files changed, 9 insertions, 0 deletions
diff --git a/routers/admin/users.go b/routers/admin/users.go
index 782012d95d..c02f366f66 100644
--- a/routers/admin/users.go
+++ b/routers/admin/users.go
@@ -214,6 +214,7 @@ func EditUserPost(ctx *context.Context, form auth.AdminEditUserForm) {
u.IsAdmin = form.Admin
u.AllowGitHook = form.AllowGitHook
u.AllowImportLocal = form.AllowImportLocal
+ u.AllowCreateOrganization = form.AllowCreateOrganization
u.ProhibitLogin = form.ProhibitLogin
if err := models.UpdateUser(u); err != nil {
diff --git a/routers/org/org.go b/routers/org/org.go
index 579a2917b4..d0988bfcf5 100644
--- a/routers/org/org.go
+++ b/routers/org/org.go
@@ -5,6 +5,8 @@
package org
import (
+ "errors"
+
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth"
"code.gitea.io/gitea/modules/base"
@@ -21,6 +23,10 @@ const (
// Create render the page for create organization
func Create(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("new_org")
+ if !ctx.User.CanCreateOrganization() {
+ ctx.Handle(500, "Not allowed", errors.New(ctx.Tr("org.form.create_org_not_allowed")))
+ return
+ }
ctx.HTML(200, tplCreateOrg)
}
@@ -48,6 +54,8 @@ func CreatePost(ctx *context.Context, form auth.CreateOrgForm) {
ctx.RenderWithErr(ctx.Tr("org.form.name_reserved", err.(models.ErrNameReserved).Name), tplCreateOrg, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.RenderWithErr(ctx.Tr("org.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), tplCreateOrg, &form)
+ case models.IsErrUserNotAllowedCreateOrg(err):
+ ctx.RenderWithErr(ctx.Tr("org.form.create_org_not_allowed"), tplCreateOrg, &form)
default:
ctx.Handle(500, "CreateOrganization", err)
}