From b2745bff436c02661d4760bc089d6d3406738f63 Mon Sep 17 00:00:00 2001 From: Jason Song Date: Thu, 1 Dec 2022 15:27:28 +0800 Subject: [PATCH] feat: support disable bots completely --- modules/context/context.go | 1 + routers/web/repo/bots/bots.go | 6 ++++++ routers/web/web.go | 11 +++-------- templates/admin/navbar.tmpl | 2 ++ templates/org/settings/navbar.tmpl | 2 ++ templates/repo/header.tmpl | 2 +- templates/repo/settings/navbar.tmpl | 8 +++++--- templates/repo/settings/options.tmpl | 24 +++++++++++++----------- 8 files changed, 33 insertions(+), 23 deletions(-) diff --git a/modules/context/context.go b/modules/context/context.go index faccc4d654..bc9eb5805c 100644 --- a/modules/context/context.go +++ b/modules/context/context.go @@ -799,6 +799,7 @@ func Contexter(ctx context.Context) func(next http.Handler) http.Handler { ctx.Data["EnableOpenIDSignIn"] = setting.Service.EnableOpenIDSignIn ctx.Data["DisableMigrations"] = setting.Repository.DisableMigrations ctx.Data["DisableStars"] = setting.Repository.DisableStars + ctx.Data["EnableBots"] = setting.Bots.Enabled ctx.Data["ManifestData"] = setting.ManifestData diff --git a/routers/web/repo/bots/bots.go b/routers/web/repo/bots/bots.go index 95d6e322a7..94f4540aca 100644 --- a/routers/web/repo/bots/bots.go +++ b/routers/web/repo/bots/bots.go @@ -14,6 +14,7 @@ import ( "code.gitea.io/gitea/modules/bots" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/convert" + "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" ) @@ -24,6 +25,11 @@ const ( // MustEnableBots check if bots are enabled in settings func MustEnableBots(ctx *context.Context) { + if !setting.Bots.Enabled { + ctx.NotFound("MustEnableBots", nil) + return + } + if unit.TypeBots.UnitGlobalDisabled() { ctx.NotFound("MustEnableBots", nil) return diff --git a/routers/web/web.go b/routers/web/web.go index f9ee2350bc..273f3dd798 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -629,7 +629,7 @@ func RegisterRoutes(m *web.Route) { m.Get("/reset_registration_token", admin.ResetRunnerRegistrationToken) m.Combo("/{runnerid}").Get(admin.EditRunner).Post(bindIgnErr(forms.EditRunnerForm{}), admin.EditRunnerPost) m.Post("/{runnerid}/delete", admin.DeleteRunnerPost) - }) + }, bots.MustEnableBots) }, func(ctx *context.Context) { ctx.Data["EnableOAuth2"] = setting.OAuth2.Enable ctx.Data["EnablePackages"] = setting.Packages.Enabled @@ -792,7 +792,7 @@ func RegisterRoutes(m *web.Route) { Post(bindIgnErr(forms.EditRunnerForm{}), org.RunnersEditPost) m.Post("/{runnerid}/delete", org.RunnerDeletePost) m.Get("/reset_registration_token", org.ResetRunnerRegistrationToken) - }) + }, bots.MustEnableBots) m.Group("/secrets", func() { m.Get("", org.Secrets) @@ -800,11 +800,6 @@ func RegisterRoutes(m *web.Route) { m.Post("/delete", org.SecretsDelete) }) - m.Group("/runners", func() { - m.Get("", org.Runners) - m.Get("/reset_registration_token", org.ResetRunnerRegistrationToken) - }) - m.Route("/delete", "GET,POST", org.SettingsDelete) m.Group("/packages", func() { @@ -965,7 +960,7 @@ func RegisterRoutes(m *web.Route) { Post(bindIgnErr(forms.EditRunnerForm{}), repo.RunnersEditPost) m.Post("/{runnerid}/delete", repo.RunnerDeletePost) m.Get("/reset_registration_token", repo.ResetRunnerRegistrationToken) - }) + }, bots.MustEnableBots) }, func(ctx *context.Context) { ctx.Data["PageIsSettings"] = true ctx.Data["LFSStartServer"] = setting.LFS.StartServer diff --git a/templates/admin/navbar.tmpl b/templates/admin/navbar.tmpl index e096300033..3259d4c37b 100644 --- a/templates/admin/navbar.tmpl +++ b/templates/admin/navbar.tmpl @@ -33,9 +33,11 @@ {{.locale.Tr "settings.applications"}} {{end}} + {{if .EnableBots}} {{.locale.Tr "admin.runners"}} + {{end}} {{.locale.Tr "admin.config"}} diff --git a/templates/org/settings/navbar.tmpl b/templates/org/settings/navbar.tmpl index 94a4bbbbea..dfcf4aceca 100644 --- a/templates/org/settings/navbar.tmpl +++ b/templates/org/settings/navbar.tmpl @@ -22,9 +22,11 @@ {{.locale.Tr "packages.title"}} {{end}} + {{if .EnableBots}} {{.locale.Tr "repo.runners"}} + {{end}} {{.locale.Tr "org.settings.secrets"}} diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl index f5bce7d735..68fc4b291a 100644 --- a/templates/repo/header.tmpl +++ b/templates/repo/header.tmpl @@ -183,7 +183,7 @@ {{end}} - {{if and (not .UnitBotsGlobalDisabled) (.Permission.CanRead $.UnitTypeBots)}} + {{if and .EnableBots (not .UnitBotsGlobalDisabled) (.Permission.CanRead $.UnitTypeBots)}} {{svg "octicon-play"}} {{.locale.Tr "repo.bots"}} {{if .Repository.NumOpenRuns}} diff --git a/templates/repo/settings/navbar.tmpl b/templates/repo/settings/navbar.tmpl index 522e35d230..dd3d399b20 100644 --- a/templates/repo/settings/navbar.tmpl +++ b/templates/repo/settings/navbar.tmpl @@ -32,8 +32,10 @@ {{.locale.Tr "repo.settings.lfs"}} {{end}} - - {{.locale.Tr "repo.settings.runners"}} - + {{if and .EnableBots (not .UnitBotsGlobalDisabled) (.Permission.CanRead $.UnitTypeBots)}} + + {{.locale.Tr "repo.settings.runners"}} + + {{end}} diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl index 06cb25854f..b1a5121010 100644 --- a/templates/repo/settings/options.tmpl +++ b/templates/repo/settings/options.tmpl @@ -420,18 +420,20 @@ - {{$isBotsEnabled := .Repository.UnitEnabled $.UnitTypeBots}} -
- - {{if .UnitTypeBots.UnitGlobalDisabled}} -
- {{else}} -
- {{end}} - - + {{if .EnableBots }} + {{$isBotsEnabled := .Repository.UnitEnabled $.UnitTypeBots}} +
+ + {{if .UnitTypeBots.UnitGlobalDisabled}} +
+ {{else}} +
+ {{end}} + + +
-
+ {{end}} {{if not .IsMirror}}