Let return correct perm (#18675) (#18689)

Backport of #18675
This commit is contained in:
Gusted 2022-02-09 21:19:48 +01:00 committed by GitHub
parent 38fc6c75f3
commit 4cfd62cddf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -328,7 +328,12 @@ func AllUnitKeyNames() []string {
// MinUnitAccessMode returns the minial permission of the permission map // MinUnitAccessMode returns the minial permission of the permission map
func MinUnitAccessMode(unitsMap map[Type]perm.AccessMode) perm.AccessMode { func MinUnitAccessMode(unitsMap map[Type]perm.AccessMode) perm.AccessMode {
res := perm.AccessModeNone res := perm.AccessModeNone
for _, mode := range unitsMap { for t, mode := range unitsMap {
// Don't allow `TypeExternal{Tracker,Wiki}` to influence this as they can only be set to READ perms.
if t == TypeExternalTracker || t == TypeExternalWiki {
continue
}
// get the minial permission great than AccessModeNone except all are AccessModeNone // get the minial permission great than AccessModeNone except all are AccessModeNone
if mode > perm.AccessModeNone && (res == perm.AccessModeNone || mode < res) { if mode > perm.AccessModeNone && (res == perm.AccessModeNone || mode < res) {
res = mode res = mode