Skip to content

Commit 35c70c7

Browse files
committed
Fix failures from processing of grandchild permissions
1 parent ea063c1 commit 35c70c7

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

ansible_base/rbac/validators.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,14 @@ def permissions_allowed_for_role(cls) -> dict[Union[Type[Model], Type[RemoteObje
7171
if not is_add_perm(permission.codename):
7272
permissions_by_model[cls].append(permission.codename)
7373

74-
# Add permissions for all child types, although this is probably relatively uncommon for remote models
74+
# Add permissions for all child types
7575
for ct in cls_ct.child_content_types.prefetch_related('dab_permissions'):
76-
for permission in ct.dab_permissions.all():
76+
for permission in ct.dab_permissions.prefetch_related('content_type__child_content_types'):
7777
permissions_by_model[ct.model_class()].append(permission.codename)
78+
# Process grandchild models
79+
for grandchild_ct in permission.content_type.child_content_types.all():
80+
for grandchild_perm in grandchild_ct.dab_permissions.all():
81+
permissions_by_model[grandchild_ct.model_class()].append(grandchild_perm.codename)
7882
return permissions_by_model
7983

8084

0 commit comments

Comments
 (0)