]> source.dussan.org Git - gitea.git/commitdiff
Fix the permission of team's `Actions` unit issue (#24536) (#24545)
authorGiteabot <teabot@gitea.io>
Fri, 5 May 2023 13:07:02 +0000 (09:07 -0400)
committerGitHub <noreply@github.com>
Fri, 5 May 2023 13:07:02 +0000 (15:07 +0200)
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

index 4964704dbad12e8764e130cc15cce456e7c3ee1c..ca09a528f66f99eb4603d201b279122f80956a5d 100644 (file)
@@ -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" {