fix - filter permissions list in profile with modify state
This commit is contained in:
@@ -66,20 +66,29 @@ class PermissionSerializer(serializers.ModelSerializer):
|
||||
|
||||
grouped = defaultdict(set)
|
||||
modifier_states = defaultdict(set)
|
||||
|
||||
# {'name': permission.name, 'modify_stat': permission.modify_state}
|
||||
for permission in permissions:
|
||||
if getattr(permission, 'is_active', True):
|
||||
page_name = getattr(permission.page, 'name', None)
|
||||
if page_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)
|
||||
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_access': sorted(list(access))
|
||||
} for page, access in grouped.items()
|
||||
]
|
||||
'page_access': sorted(list(access)),
|
||||
})
|
||||
return structure
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user