From 257287954c5e553c8c1495921f75c5d02c9e83e3 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Fri, 5 May 2023 09:07:02 -0400 Subject: [PATCH] Fix the permission of team's `Actions` unit issue (#24536) (#24545) Backport #24536 by @sillyguodong close #24449 The unit of `Actions` should be contorlled not only by `repository.DISABLED_REPO_UNITS` but also by `actions.ENABLED` in the `app.ini`. Previously, the permission of the team's `Actions` unit was not controlled by `actions.Enabled`. So, even if the user sets `actions.Enabled` to false, he can still select the permission of the `Actions` unit for the team. This PR makes the permissions of the team's `Actions` unit also controlled by `actions.Enabled`. Just append`TypeActions` into `DisabledRepoUnits` slice when initializing if `actions.Enabled` is false. ### Changes: If `Actions` is set disbaled in `app.ini`, like below: ```yaml [actions] ENABLED = false ``` 1. If user try to create/edit a team, will prompt user that `Actions` is disbaled. ![image](https://user-images.githubusercontent.com/33891828/236370415-961082b2-82d2-4d9e-8025-83872ad08cbb.png) 2. `actions` is not displayed in the sidebar on the team details page ![image](https://user-images.githubusercontent.com/33891828/236371817-f39f9bc9-5926-4b88-b5e6-d93617fcfb07.png) Co-authored-by: sillyguodong <33891828+sillyguodong@users.noreply.github.com> --- modules/setting/repository.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/setting/repository.go b/modules/setting/repository.go index 4964704dba..ca09a528f6 100644 --- a/modules/setting/repository.go +++ b/modules/setting/repository.go @@ -311,6 +311,10 @@ func loadRepositoryFrom(rootCfg ConfigProvider) { Repository.DisabledRepoUnits = append(Repository.DisabledRepoUnits, "repo.packages") } + if !rootCfg.Section("actions").Key("ENABLED").MustBool(true) { + Repository.DisabledRepoUnits = append(Repository.DisabledRepoUnits, "repo.actions") + } + // Handle default trustmodel settings Repository.Signing.DefaultTrustModel = strings.ToLower(strings.TrimSpace(Repository.Signing.DefaultTrustModel)) if Repository.Signing.DefaultTrustModel == "default" {