diff --git a/models/perm/access/repo_permission.go b/models/perm/access/repo_permission.go index e556081ea7..f2dbcd3a82 100644 --- a/models/perm/access/repo_permission.go +++ b/models/perm/access/repo_permission.go @@ -387,7 +387,7 @@ func GetUserRepoPermission(ctx context.Context, repo *repo_model.Repository, use 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 @@ -402,6 +402,11 @@ func GetUserRepoPermission(ctx context.Context, repo *repo_model.Repository, use 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