0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-04-04 16:46:17 +02:00

update repo_permission.go

change `GetUserRepoPermission` to check for permissions granted/denied by groups
This commit is contained in:
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ 2025-01-09 18:15:12 -05:00
parent cf712d465c
commit 55e745a147
No known key found for this signature in database
GPG Key ID: 924A5F6AF051E87C

View File

@ -4,6 +4,7 @@
package access
import (
group_model "code.gitea.io/gitea/models/group"
"context"
"errors"
"fmt"
@ -482,6 +483,14 @@ func GetIndividualUserRepoPermission(ctx context.Context, repo *repo_model.Repos
return perm, nil
}
}
groupTeams, err := group_model.FindGroupTeams(ctx, repo.GroupID)
for _, team := range groupTeams {
if team.AccessMode >= perm_model.AccessModeAdmin {
perm.AccessMode = perm_model.AccessModeOwner
perm.unitsMode = nil
return perm, nil
}
}
for _, u := range repo.Units {
for _, team := range teams {
@ -529,6 +538,17 @@ func IsUserRepoAdmin(ctx context.Context, repo *repo_model.Repository, user *use
return true, nil
}
groupTeams, err := organization.GetUserGroupTeams(ctx, repo.GroupID, user.ID)
if err != nil {
return false, err
}
for _, team := range groupTeams {
if team.AccessMode >= perm_model.AccessModeAdmin {
return true, nil
}
}
teams, err := organization.GetUserRepoTeams(ctx, repo.OwnerID, user.ID, repo.ID)
if err != nil {
return false, err