From 88210d2e5fe75cbb7ba258560c70c8066a15be15 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 27 Jul 2022 21:09:47 +0800 Subject: [PATCH 1/5] add disable download source configuration --- custom/conf/app.example.ini | 3 +++ modules/setting/repository.go | 1 + routers/web/repo/release.go | 1 + routers/web/web.go | 9 ++++++++- templates/mail/release.tmpl | 2 ++ templates/repo/home.tmpl | 2 ++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index 08708948940fa..3f1eca2763909 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -878,6 +878,9 @@ ROUTER = console ;; Allow deletion of unadopted repositories ;ALLOW_DELETION_OF_UNADOPTED_REPOSITORIES = false +;; Dont' allow download source tar files from UI +;DISABLED_DOWNLOAD_SOURCE = false + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;[repository.editor] diff --git a/modules/setting/repository.go b/modules/setting/repository.go index 733bc6d90e600..bcadbd1aef645 100644 --- a/modules/setting/repository.go +++ b/modules/setting/repository.go @@ -48,6 +48,7 @@ var ( DefaultBranch string AllowAdoptionOfUnadoptedRepositories bool AllowDeleteOfUnadoptedRepositories bool + DisabledDownloadSource bool // Repository editor settings Editor struct { diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index ab87c3e2385af..246810af1feca 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -78,6 +78,7 @@ func releasesOrTags(ctx *context.Context, isTagList bool) { // Disable the showCreateNewBranch form in the dropdown on this page. ctx.Data["CanCreateBranch"] = false ctx.Data["HideBranchesInDropdown"] = true + ctx.Data["DisabledDownloadSource"] = setting.Repository.DisabledDownloadSource if isTagList { ctx.Data["Title"] = ctx.Tr("repo.release.tags") diff --git a/routers/web/web.go b/routers/web/web.go index fbece620b1c3f..f6f6370939a65 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -289,6 +289,13 @@ func RegisterRoutes(m *web.Route) { } } + dlSourceEnabled := func(ctx *context.Context) { + if setting.Repository.DisabledDownloadSource { + ctx.Error(http.StatusNotFound) + return + } + } + // FIXME: not all routes need go through same middleware. // Especially some AJAX requests, we can reduce middleware number to improve performance. // Routers. @@ -1104,7 +1111,7 @@ func RegisterRoutes(m *web.Route) { m.Group("/archive", func() { m.Get("/*", repo.Download) m.Post("/*", repo.InitiateDownload) - }, repo.MustBeNotEmpty, reqRepoCodeReader) + }, repo.MustBeNotEmpty, dlSourceEnabled, reqRepoCodeReader) m.Group("/branches", func() { m.Get("", repo.Branches) diff --git a/templates/mail/release.tmpl b/templates/mail/release.tmpl index a95647105ca50..35bca9719842e 100644 --- a/templates/mail/release.tmpl +++ b/templates/mail/release.tmpl @@ -31,12 +31,14 @@
{{.locale.Tr "mail.release.downloads"}}