fix permissions by page

This commit is contained in:
2025-06-01 14:01:40 +03:30
parent a47ca393a3
commit 8a2b2ce905

View File

@@ -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