fix - filter permissions list in profile with modify state

This commit is contained in:
2025-11-17 14:19:22 +03:30
parent 7886c19c58
commit 5d45f4890c

View File

@@ -66,20 +66,29 @@ class PermissionSerializer(serializers.ModelSerializer):
grouped = defaultdict(set) grouped = defaultdict(set)
modifier_states = defaultdict(set) modifier_states = defaultdict(set)
# {'name': permission.name, 'modify_stat': permission.modify_state}
for permission in permissions: for permission in permissions:
if getattr(permission, 'is_active', True): if getattr(permission, 'is_active', True):
page_name = getattr(permission.page, 'name', None) page_name = getattr(permission.page, 'name', None)
if page_name: if page_name:
grouped[page_name].add(permission.name) grouped[page_name].add(permission.name)
grouped[f'modify_state_{page_name}'].add(permission.modify_state)
modifier_states[page_name].add(permission.modify_state) modifier_states[page_name].add(permission.modify_state)
structure = []
structure = [ for page, access in grouped.items():
{ if page.startswith('modify_state_'):
continue
modify_states = grouped.get(f'modify_state_{page}', set())
if False not in modify_states:
continue
structure.append({
'page_name': page, 'page_name': page,
'page_access': sorted(list(access)) 'page_access': sorted(list(access)),
} for page, access in grouped.items() })
]
return structure return structure