mirror of https://github.com/gogs/gogs.git
Able to disable non-admin to create new organization (#1556)
Add new config option '[admin] DISABLE_REGULAR_ORG_CREATION', by default it's 'false'.pull/3809/merge
parent
2c154ccbe7
commit
b67ec01d41
|
@ -362,8 +362,14 @@ func runWeb(ctx *cli.Context) error {
|
||||||
|
|
||||||
// ***** START: Organization *****
|
// ***** START: Organization *****
|
||||||
m.Group("/org", func() {
|
m.Group("/org", func() {
|
||||||
|
m.Group("", func() {
|
||||||
m.Get("/create", org.Create)
|
m.Get("/create", org.Create)
|
||||||
m.Post("/create", bindIgnErr(auth.CreateOrgForm{}), org.CreatePost)
|
m.Post("/create", bindIgnErr(auth.CreateOrgForm{}), org.CreatePost)
|
||||||
|
}, func(ctx *context.Context) {
|
||||||
|
if !ctx.User.CanCreateOrganization() {
|
||||||
|
ctx.NotFound()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
m.Group("/:org", func() {
|
m.Group("/:org", func() {
|
||||||
m.Get("/dashboard", user.Dashboard)
|
m.Get("/dashboard", user.Dashboard)
|
||||||
|
|
|
@ -171,6 +171,8 @@ SSL_MODE = disable
|
||||||
PATH = data/gogs.db
|
PATH = data/gogs.db
|
||||||
|
|
||||||
[admin]
|
[admin]
|
||||||
|
; Disable regular (non-admin) users to create organizations
|
||||||
|
DISABLE_REGULAR_ORG_CREATION = false
|
||||||
|
|
||||||
[security]
|
[security]
|
||||||
INSTALL_LOCK = false
|
INSTALL_LOCK = false
|
||||||
|
|
2
gogs.go
2
gogs.go
|
@ -16,7 +16,7 @@ import (
|
||||||
"github.com/gogits/gogs/modules/setting"
|
"github.com/gogits/gogs/modules/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
const APP_VER = "0.9.139.0210"
|
const APP_VER = "0.9.140.0210"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
setting.AppVer = APP_VER
|
setting.AppVer = APP_VER
|
||||||
|
|
|
@ -170,6 +170,10 @@ func (u *User) CanCreateRepo() bool {
|
||||||
return u.NumRepos < u.MaxRepoCreation
|
return u.NumRepos < u.MaxRepoCreation
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (u *User) CanCreateOrganization() bool {
|
||||||
|
return !setting.Admin.DisableRegularOrgCreation || u.IsAdmin
|
||||||
|
}
|
||||||
|
|
||||||
// CanEditGitHook returns true if user can edit Git hooks.
|
// CanEditGitHook returns true if user can edit Git hooks.
|
||||||
func (u *User) CanEditGitHook() bool {
|
func (u *User) CanEditGitHook() bool {
|
||||||
return u.IsAdmin || u.AllowGitHook
|
return u.IsAdmin || u.AllowGitHook
|
||||||
|
|
|
@ -170,6 +170,11 @@ var (
|
||||||
FileExtensions []string
|
FileExtensions []string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Admin settings
|
||||||
|
Admin struct {
|
||||||
|
DisableRegularOrgCreation bool
|
||||||
|
}
|
||||||
|
|
||||||
// Picture settings
|
// Picture settings
|
||||||
AvatarUploadPath string
|
AvatarUploadPath string
|
||||||
GravatarSource string
|
GravatarSource string
|
||||||
|
@ -568,6 +573,8 @@ func NewContext() {
|
||||||
log.Fatal(4, "Fail to map UI settings: %v", err)
|
log.Fatal(4, "Fail to map UI settings: %v", err)
|
||||||
} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
|
} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
|
||||||
log.Fatal(4, "Fail to map Markdown settings: %v", err)
|
log.Fatal(4, "Fail to map Markdown settings: %v", err)
|
||||||
|
} else if err = Cfg.Section("admin").MapTo(&Admin); err != nil {
|
||||||
|
log.Fatal(4, "Fail to map Admin settings: %v", err)
|
||||||
} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {
|
} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {
|
||||||
log.Fatal(4, "Fail to map Cron settings: %v", err)
|
log.Fatal(4, "Fail to map Cron settings: %v", err)
|
||||||
} else if err = Cfg.Section("git").MapTo(&Git); err != nil {
|
} else if err = Cfg.Section("git").MapTo(&Git); err != nil {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
0.9.139.0210
|
0.9.140.0210
|
|
@ -93,9 +93,11 @@
|
||||||
<a class="item" href="{{AppSubUrl}}/repo/migrate">
|
<a class="item" href="{{AppSubUrl}}/repo/migrate">
|
||||||
<i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
|
<i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
|
||||||
</a>
|
</a>
|
||||||
|
{{if .SignedUser.CanCreateOrganization}}
|
||||||
<a class="item" href="{{AppSubUrl}}/org/create">
|
<a class="item" href="{{AppSubUrl}}/org/create">
|
||||||
<i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
|
<i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
|
||||||
</a>
|
</a>
|
||||||
|
{{end}}
|
||||||
</div><!-- end content create new menu -->
|
</div><!-- end content create new menu -->
|
||||||
</div><!-- end dropdown menu create new -->
|
</div><!-- end dropdown menu create new -->
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue