summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauris BH <lauris@nix.lv>2017-05-08 22:51:53 +0300
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2017-05-08 21:51:53 +0200
commit51d0becb4232eab6b18959ccc4a895e5df30c4dc (patch)
treed119ca2bef3ca44147801cd57e4cf2190690f65a
parenta85c5ab9ff60dab58b2bf713479460caac8e9567 (diff)
downloadgitea-51d0becb4232eab6b18959ccc4a895e5df30c4dc.tar.gz
gitea-51d0becb4232eab6b18959ccc4a895e5df30c4dc.zip
Add configuration option for default permission to create Organizations (#1686)
-rw-r--r--conf/app.ini3
-rw-r--r--integrations/mysql.ini1
-rw-r--r--integrations/pgsql.ini1
-rw-r--r--integrations/sqlite.ini1
-rw-r--r--models/user.go2
-rw-r--r--modules/auth/user_form.go1
-rw-r--r--modules/setting/setting.go2
-rw-r--r--options/locale/locale_en-US.ini3
-rw-r--r--public/css/index.css4
-rw-r--r--public/less/_admin.less4
-rw-r--r--routers/install.go2
-rw-r--r--templates/admin/config.tmpl2
-rw-r--r--templates/install.tmpl6
13 files changed, 27 insertions, 5 deletions
diff --git a/conf/app.ini b/conf/app.ini
index b1eb953cdf..47fd4b1182 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -240,6 +240,9 @@ ENABLE_CAPTCHA = true
; Default value for KeepEmailPrivate
; New user will get the value of this setting copied into their profile
DEFAULT_KEEP_EMAIL_PRIVATE = false
+; Default value for AllowCreateOrganization
+; New user will have rights set to create organizations depending on this setting
+DEFAULT_ALLOW_CREATE_ORGANIZATION = true
; Default value for the domain part of the user's email address in the git log
; if he has set KeepEmailPrivate true. The user's email replaced with a
; concatenation of the user name in lower case, "@" and NO_REPLY_ADDRESS.
diff --git a/integrations/mysql.ini b/integrations/mysql.ini
index b15588c867..9560b4ff9f 100644
--- a/integrations/mysql.ini
+++ b/integrations/mysql.ini
@@ -32,6 +32,7 @@ DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
+DEFAULT_ALLOW_CREATE_ORGANIZATION = true
NO_REPLY_ADDRESS = noreply.example.org
[picture]
diff --git a/integrations/pgsql.ini b/integrations/pgsql.ini
index 920a5190d4..a0cae0dabc 100644
--- a/integrations/pgsql.ini
+++ b/integrations/pgsql.ini
@@ -32,6 +32,7 @@ DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
+DEFAULT_ALLOW_CREATE_ORGANIZATION = true
NO_REPLY_ADDRESS = noreply.example.org
[picture]
diff --git a/integrations/sqlite.ini b/integrations/sqlite.ini
index dc17b23ec8..9ced8c025b 100644
--- a/integrations/sqlite.ini
+++ b/integrations/sqlite.ini
@@ -32,6 +32,7 @@ DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
+DEFAULT_ALLOW_CREATE_ORGANIZATION = true
NO_REPLY_ADDRESS = noreply.example.org
[picture]
diff --git a/models/user.go b/models/user.go
index 59ce631172..e95bf5cd44 100644
--- a/models/user.go
+++ b/models/user.go
@@ -706,7 +706,7 @@ func CreateUser(u *User) (err error) {
return err
}
u.EncodePasswd()
- u.AllowCreateOrganization = true
+ u.AllowCreateOrganization = setting.Service.DefaultAllowCreateOrganization
u.MaxRepoCreation = -1
sess := x.NewSession()
diff --git a/modules/auth/user_form.go b/modules/auth/user_form.go
index 9e19c78a45..ea6e464a7f 100644
--- a/modules/auth/user_form.go
+++ b/modules/auth/user_form.go
@@ -45,6 +45,7 @@ type InstallForm struct {
EnableCaptcha bool
RequireSignInView bool
DefaultKeepEmailPrivate bool
+ DefaultAllowCreateOrganization bool
NoReplyAddress string
AdminName string `binding:"OmitEmpty;AlphaDashDot;MaxSize(30)" locale:"install.admin_name"`
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index a00db16d3a..c3ed4ef971 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -972,6 +972,7 @@ var Service struct {
EnableReverseProxyAutoRegister bool
EnableCaptcha bool
DefaultKeepEmailPrivate bool
+ DefaultAllowCreateOrganization bool
NoReplyAddress string
// OpenID settings
@@ -992,6 +993,7 @@ func newService() {
Service.EnableReverseProxyAutoRegister = sec.Key("ENABLE_REVERSE_PROXY_AUTO_REGISTRATION").MustBool()
Service.EnableCaptcha = sec.Key("ENABLE_CAPTCHA").MustBool()
Service.DefaultKeepEmailPrivate = sec.Key("DEFAULT_KEEP_EMAIL_PRIVATE").MustBool()
+ Service.DefaultAllowCreateOrganization = sec.Key("DEFAULT_ALLOW_CREATE_ORGANIZATION").MustBool(true)
Service.NoReplyAddress = sec.Key("NO_REPLY_ADDRESS").MustString("noreply.example.org")
sec = Cfg.Section("openid")
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 6f4866e373..fadb90a9e3 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -132,6 +132,8 @@ install_success = Welcome! We're glad that you chose Gitea, have fun and take ca
invalid_log_root_path = Log root path is invalid: %v
default_keep_email_private = Default Value for Keep Email Private
default_keep_email_private_popup = This is the default value for the visibility of the user's email address. If set to true the email address of all new users will be hidden until the user changes his setting.
+default_allow_create_organization = Default permission value for new users to create Organizations
+default_allow_create_organization_popup = This is default permission value that will be assigned for new users. If set to true new users will be allowed to create Organizations.
no_reply_address = No-reply Address
no_reply_address_helper = Domain for the user's email address in git logs if he keeps his email address private. E.g. user 'joe' and 'noreply.example.org' will be 'joe@noreply.example.org'
@@ -1260,6 +1262,7 @@ config.enable_captcha = Enable Captcha
config.active_code_lives = Active Code Lives
config.reset_password_code_lives = Reset Password Code Lives
config.default_keep_email_private = Default Value for Keep Email Private
+config.default_allow_create_organization = Default permission to create Organizations
config.no_reply_address = No-reply Address
config.webhook_config = Webhook Configuration
diff --git a/public/css/index.css b/public/css/index.css
index 6c5be7f0b5..5721d8e9bc 100644
--- a/public/css/index.css
+++ b/public/css/index.css
@@ -2938,12 +2938,12 @@ footer .ui.language .menu {
margin: 0;
}
.admin dl.admin-dl-horizontal dd {
- margin-left: 240px;
+ margin-left: 275px;
}
.admin dl.admin-dl-horizontal dt {
font-weight: bolder;
float: left;
- width: 250px;
+ width: 285px;
clear: left;
overflow: hidden;
text-overflow: ellipsis;
diff --git a/public/less/_admin.less b/public/less/_admin.less
index eab7b15efa..92efc3825f 100644
--- a/public/less/_admin.less
+++ b/public/less/_admin.less
@@ -45,12 +45,12 @@
margin: 0;
dd {
- margin-left: 240px;
+ margin-left: 275px;
}
dt {
font-weight: bolder;
float: left;
- width: 250px;
+ width: 285px;
clear: left;
overflow: hidden;
text-overflow: ellipsis;
diff --git a/routers/install.go b/routers/install.go
index 1ab409d00d..57311e13a4 100644
--- a/routers/install.go
+++ b/routers/install.go
@@ -112,6 +112,7 @@ func Install(ctx *context.Context) {
form.EnableCaptcha = setting.Service.EnableCaptcha
form.RequireSignInView = setting.Service.RequireSignInView
form.DefaultKeepEmailPrivate = setting.Service.DefaultKeepEmailPrivate
+ form.DefaultAllowCreateOrganization = setting.Service.DefaultAllowCreateOrganization
form.NoReplyAddress = setting.Service.NoReplyAddress
auth.AssignForm(form, ctx.Data)
@@ -295,6 +296,7 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
cfg.Section("service").Key("ENABLE_CAPTCHA").SetValue(com.ToStr(form.EnableCaptcha))
cfg.Section("service").Key("REQUIRE_SIGNIN_VIEW").SetValue(com.ToStr(form.RequireSignInView))
cfg.Section("service").Key("DEFAULT_KEEP_EMAIL_PRIVATE").SetValue(com.ToStr(form.DefaultKeepEmailPrivate))
+ cfg.Section("service").Key("DEFAULT_ALLOW_CREATE_ORGANIZATION").SetValue(com.ToStr(form.DefaultAllowCreateOrganization))
cfg.Section("service").Key("NO_REPLY_ADDRESS").SetValue(com.ToStr(form.NoReplyAddress))
cfg.Section("").Key("RUN_MODE").SetValue("prod")
diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl
index 7348ab7b9e..0fbd0befcf 100644
--- a/templates/admin/config.tmpl
+++ b/templates/admin/config.tmpl
@@ -128,6 +128,8 @@
<dd><i class="fa fa{{if .Service.EnableCaptcha}}-check{{end}}-square-o"></i></dd>
<dt>{{.i18n.Tr "admin.config.default_keep_email_private"}}</dt>
<dd><i class="fa fa{{if .Service.DefaultKeepEmailPrivate}}-check{{end}}-square-o"></i></dd>
+ <dt>{{.i18n.Tr "admin.config.default_allow_create_organization"}}</dt>
+ <dd><i class="fa fa{{if .Service.DefaultAllowCreateOrganization}}-check{{end}}-square-o"></i></dd>
<dt>{{.i18n.Tr "admin.config.no_reply_address"}}</dt>
<dd>{{if .Service.NoReplyAddress}}{{.Service.NoReplyAddress}}{{else}}-{{end}}</dd>
<div class="ui divider"></div>
diff --git a/templates/install.tmpl b/templates/install.tmpl
index d084005c8c..ede1d4399f 100644
--- a/templates/install.tmpl
+++ b/templates/install.tmpl
@@ -213,6 +213,12 @@
</div>
</div>
<div class="inline field">
+ <div class="ui checkbox">
+ <label class="poping up" data-content="{{.i18n.Tr "install.default_allow_create_organization_popup"}}"><strong>{{.i18n.Tr "install.default_allow_create_organization"}}</strong></label>
+ <input name="default_allow_create_organization" type="checkbox" {{if .default_allow_create_organization}}checked{{end}}>
+ </div>
+ </div>
+ <div class="inline field">
<label for="no_reply_address">{{.i18n.Tr "install.no_reply_address"}}</label>
<input id="_no_reply_address" name="no_reply_address" value="{{.no_reply_address}}">
<span class="help">{{.i18n.Tr "install.no_reply_address_helper"}}</span>