Browse Source

Allow site admin to disable mirrors (#11740)

* Allow site admin to disable mirrors

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* No need to run through Safe

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Clarify only disabling NEW mirrors

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Apply suggestions from @guillep2k

Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>

Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
for-closed-social
John Olheiser 4 years ago
committed by GitHub
parent
commit
a6fd2f23f7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 16 additions and 4 deletions
  1. +2
    -0
      custom/conf/app.ini.sample
  2. +1
    -0
      docs/content/doc/advanced/config-cheat-sheet.en-us.md
  3. +2
    -0
      modules/setting/repository.go
  4. +1
    -0
      options/locale/locale_en-US.ini
  5. +1
    -1
      routers/api/v1/repo/migrate.go
  6. +2
    -1
      routers/repo/repo.go
  7. +7
    -2
      templates/repo/migrate.tmpl

+ 2
- 0
custom/conf/app.ini.sample View File

@ -55,6 +55,8 @@ DISABLED_REPO_UNITS =
DEFAULT_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki DEFAULT_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki
; Prefix archive files by placing them in a directory named after the repository ; Prefix archive files by placing them in a directory named after the repository
PREFIX_ARCHIVE_FILES = true PREFIX_ARCHIVE_FILES = true
; Disable the creation of new mirrors. Pre-existing mirrors remain valid.
DISABLE_MIRRORS = false
[repository.editor] [repository.editor]
; List of file extensions for which lines should be wrapped in the Monaco editor ; List of file extensions for which lines should be wrapped in the Monaco editor

+ 1
- 0
docs/content/doc/advanced/config-cheat-sheet.en-us.md View File

@ -70,6 +70,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
- `ENABLE_PUSH_CREATE_USER`: **false**: Allow users to push local repositories to Gitea and have them automatically created for a user. - `ENABLE_PUSH_CREATE_USER`: **false**: Allow users to push local repositories to Gitea and have them automatically created for a user.
- `ENABLE_PUSH_CREATE_ORG`: **false**: Allow users to push local repositories to Gitea and have them automatically created for an org. - `ENABLE_PUSH_CREATE_ORG`: **false**: Allow users to push local repositories to Gitea and have them automatically created for an org.
- `PREFIX_ARCHIVE_FILES`: **true**: Prefix archive files by placing them in a directory named after the repository. - `PREFIX_ARCHIVE_FILES`: **true**: Prefix archive files by placing them in a directory named after the repository.
- `DISABLE_MIRRORS`: **false**: Disable the creation of **new** mirrors. Pre-existing mirrors remain valid.
### Repository - Pull Request (`repository.pull-request`) ### Repository - Pull Request (`repository.pull-request`)

+ 2
- 0
modules/setting/repository.go View File

@ -42,6 +42,7 @@ var (
DisabledRepoUnits []string DisabledRepoUnits []string
DefaultRepoUnits []string DefaultRepoUnits []string
PrefixArchiveFiles bool PrefixArchiveFiles bool
DisableMirrors bool
// Repository editor settings // Repository editor settings
Editor struct { Editor struct {
@ -142,6 +143,7 @@ var (
DisabledRepoUnits: []string{}, DisabledRepoUnits: []string{},
DefaultRepoUnits: []string{}, DefaultRepoUnits: []string{},
PrefixArchiveFiles: true, PrefixArchiveFiles: true,
DisableMirrors: false,
// Repository editor settings // Repository editor settings
Editor: struct { Editor: struct {

+ 1
- 0
options/locale/locale_en-US.ini View File

@ -689,6 +689,7 @@ form.name_pattern_not_allowed = The pattern '%s' is not allowed in a repository
need_auth = Clone Authorization need_auth = Clone Authorization
migrate_type = Migration Type migrate_type = Migration Type
migrate_type_helper = This repository will be a <span class="text blue">mirror</span> migrate_type_helper = This repository will be a <span class="text blue">mirror</span>
migrate_type_helper_disabled = Your site administrator has disabled new mirrors.
migrate_items = Migration Items migrate_items = Migration Items
migrate_items_wiki = Wiki migrate_items_wiki = Wiki
migrate_items_milestones = Milestones migrate_items_milestones = Milestones

+ 1
- 1
routers/api/v1/repo/migrate.go View File

@ -118,7 +118,7 @@ func Migrate(ctx *context.APIContext, form auth.MigrateRepoForm) {
RepoName: form.RepoName, RepoName: form.RepoName,
Description: form.Description, Description: form.Description,
Private: form.Private || setting.Repository.ForcePrivate, Private: form.Private || setting.Repository.ForcePrivate,
Mirror: form.Mirror,
Mirror: form.Mirror && !setting.Repository.DisableMirrors,
AuthUsername: form.AuthUsername, AuthUsername: form.AuthUsername,
AuthPassword: form.AuthPassword, AuthPassword: form.AuthPassword,
Wiki: form.Wiki, Wiki: form.Wiki,

+ 2
- 1
routers/repo/repo.go View File

@ -259,6 +259,7 @@ func Migrate(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("new_migrate") ctx.Data["Title"] = ctx.Tr("new_migrate")
ctx.Data["private"] = getRepoPrivate(ctx) ctx.Data["private"] = getRepoPrivate(ctx)
ctx.Data["IsForcedPrivate"] = setting.Repository.ForcePrivate ctx.Data["IsForcedPrivate"] = setting.Repository.ForcePrivate
ctx.Data["DisableMirrors"] = setting.Repository.DisableMirrors
ctx.Data["mirror"] = ctx.Query("mirror") == "1" ctx.Data["mirror"] = ctx.Query("mirror") == "1"
ctx.Data["wiki"] = ctx.Query("wiki") == "1" ctx.Data["wiki"] = ctx.Query("wiki") == "1"
ctx.Data["milestones"] = ctx.Query("milestones") == "1" ctx.Data["milestones"] = ctx.Query("milestones") == "1"
@ -360,7 +361,7 @@ func MigratePost(ctx *context.Context, form auth.MigrateRepoForm) {
RepoName: form.RepoName, RepoName: form.RepoName,
Description: form.Description, Description: form.Description,
Private: form.Private || setting.Repository.ForcePrivate, Private: form.Private || setting.Repository.ForcePrivate,
Mirror: form.Mirror,
Mirror: form.Mirror && !setting.Repository.DisableMirrors,
AuthUsername: form.AuthUsername, AuthUsername: form.AuthUsername,
AuthPassword: form.AuthPassword, AuthPassword: form.AuthPassword,
Wiki: form.Wiki, Wiki: form.Wiki,

+ 7
- 2
templates/repo/migrate.tmpl View File

@ -81,8 +81,13 @@
<div class="inline field"> <div class="inline field">
<label>{{.i18n.Tr "repo.migrate_type"}}</label> <label>{{.i18n.Tr "repo.migrate_type"}}</label>
<div class="ui checkbox"> <div class="ui checkbox">
<input id="mirror" name="mirror" type="checkbox" {{if .mirror}}checked{{end}}>
<label>{{.i18n.Tr "repo.migrate_type_helper" | Safe}}</label>
{{if .DisableMirrors}}
<input id="mirror" name="mirror" type="checkbox" readonly>
<label>{{.i18n.Tr "repo.migrate_type_helper_disabled"}}</label>
{{else}}
<input id="mirror" name="mirror" type="checkbox" {{if .mirror}}checked{{end}}>
<label>{{.i18n.Tr "repo.migrate_type_helper" | Safe}}</label>
{{end}}
</div> </div>
</div> </div>
<div id="migrate_items" class="ui field"> <div id="migrate_items" class="ui field">

Loading…
Cancel
Save