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)
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user