From aae627e4e833cbf39a1b1f4cb0cfda9aa12d95fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Sun, 30 Nov 2025 15:44:31 -0500 Subject: [PATCH] update `GetUserRepoPermission` ensure we check the parent group's unit permissions as well --- models/perm/access/repo_permission.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/models/perm/access/repo_permission.go b/models/perm/access/repo_permission.go index df0440f893..6b6c03094c 100644 --- a/models/perm/access/repo_permission.go +++ b/models/perm/access/repo_permission.go @@ -483,7 +483,7 @@ func GetIndividualUserRepoPermission(ctx context.Context, repo *repo_model.Repos return perm, nil } } - groupTeams, err := group_model.FindGroupTeams(ctx, repo.GroupID) + groupTeams, err := group_model.FindUserGroupTeams(ctx, repo.GroupID, user.ID) for _, team := range groupTeams { if team.AccessMode >= perm_model.AccessModeAdmin { perm.AccessMode = perm_model.AccessModeOwner @@ -498,6 +498,11 @@ func GetIndividualUserRepoPermission(ctx context.Context, repo *repo_model.Repos unitAccessMode := max(perm.unitsMode[u.Type], minAccessMode, teamMode) perm.unitsMode[u.Type] = unitAccessMode } + for _, team := range groupTeams { + teamMode, _ := team.UnitAccessModeEx(ctx, u.Type) + unitAccessMode := max(perm.unitsMode[u.Type], minAccessMode, teamMode) + perm.unitsMode[u.Type] = unitAccessMode + } } return perm, err