fix permissions by page
This commit is contained in:
@@ -6,6 +6,7 @@ from apps.authorization.models import (
|
||||
)
|
||||
from apps.authentication.api.v1.serializers import serializer as auth_serializer
|
||||
from apps.authentication.models import Organization
|
||||
import itertools
|
||||
|
||||
|
||||
class PermissionSerializer(serializers.ModelSerializer):
|
||||
@@ -46,7 +47,17 @@ class RoleSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
representation = super().to_representation(instance)
|
||||
representation['type'] = auth_serializer.OrganizationTypeSerializer(instance.type).data
|
||||
representation['permissions'] = PermissionSerializer(instance.permissions, many=True).data
|
||||
if instance.permissions: # noqa
|
||||
permissions = instance.permissions.all()
|
||||
pages = {}
|
||||
for permission in permissions:
|
||||
if permission.page.name not in pages.keys():
|
||||
pages.update({
|
||||
f'{permission.page.name}': itertools.chain(*list(
|
||||
(permission.page.permission_page.all().values_list('name'))
|
||||
))
|
||||
})
|
||||
representation['permissions'] = pages
|
||||
return representation
|
||||
|
||||
|
||||
@@ -76,9 +87,11 @@ class UserRelationSerializer(serializers.ModelSerializer):
|
||||
for permission in permissions:
|
||||
if permission.page.name not in pages.keys():
|
||||
pages.update({
|
||||
f'{permission.page.name}': permission.page.permission_page.all().values('name')
|
||||
f'{permission.page.name}': itertools.chain(*list(
|
||||
(permission.page.permission_page.all().values_list('name'))
|
||||
))
|
||||
})
|
||||
representation['perms'] = pages
|
||||
representation['permissions'] = pages
|
||||
|
||||
return representation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user