mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-09 05:37:47 +02:00
update GetUserRepoPermission
ensure we check the parent group's unit permissions as well
This commit is contained in:
parent
83d982cc38
commit
aae627e4e8
@ -483,7 +483,7 @@ func GetIndividualUserRepoPermission(ctx context.Context, repo *repo_model.Repos
|
|||||||
return perm, nil
|
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 {
|
for _, team := range groupTeams {
|
||||||
if team.AccessMode >= perm_model.AccessModeAdmin {
|
if team.AccessMode >= perm_model.AccessModeAdmin {
|
||||||
perm.AccessMode = perm_model.AccessModeOwner
|
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)
|
unitAccessMode := max(perm.unitsMode[u.Type], minAccessMode, teamMode)
|
||||||
perm.unitsMode[u.Type] = unitAccessMode
|
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
|
return perm, err
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user