Skip to content

Commit 35e29b2

Browse files
Derive groups from group_names
1 parent cd380ef commit 35e29b2

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

pulpcore/app/access_policy.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ class DefaultAccessPolicy(AccessPolicy):
1616
"""
1717

1818
def get_user_group_values(self, user):
19-
"""Let a stateless principal supply its groups via ``group_names`` instead of the ORM."""
20-
group_names = getattr(user, "group_names", None)
21-
if group_names is not None:
22-
return list(group_names)
19+
"""Let a stateless principal supply its groups directly instead of via the ORM."""
20+
from pulpcore.app.workload_identity.principal import WorkloadIdentityPrincipal
21+
22+
if isinstance(user, WorkloadIdentityPrincipal):
23+
return list(user.group_names)
2324
return super().get_user_group_values(user)
2425

2526
@classmethod

pulpcore/app/workload_identity/principal.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ def __init__(self, grants, username=""):
2525

2626
@property
2727
def groups(self):
28-
"""An empty ``Group`` queryset so ``user.groups.all()`` never crashes."""
28+
"""The ``Group`` objects named by ``group_names`` (empty by default)."""
2929
from pulpcore.app.models import Group
3030

31-
return Group.objects.none()
31+
return Group.objects.filter(name__in=self.group_names)
3232

3333
def has_perm(self, perm, obj=None):
3434
"""Whether the grants confer ``perm`` (optionally scoped to ``obj``)."""

0 commit comments

Comments
 (0)