This commit is contained in:
behruz-dev
2025-09-20 14:51:48 +05:00
parent 4c3cb52fc6
commit 96ff2973cf
2 changed files with 21 additions and 9 deletions

View File

@@ -12,20 +12,16 @@ class PermissionToActionListSerializer(serializers.ModelSerializer):
class PermissionToTabListSerializer(serializers.ModelSerializer):
permission_to_actions = PermissionToActionListSerializer(many=True)
class Meta:
model = PermissionToTab
fields = [
'id', 'name', 'code', 'permission_to_actions'
'id', 'name', 'code'
]
class PermissionListSerializer(serializers.ModelSerializer):
permission_tab = PermissionToTabListSerializer(many=True)
class Meta:
model = Permission
fields = [
'id', 'name', 'code', 'permission_tab'
'id', 'name', 'code'
]

View File

@@ -2,12 +2,28 @@ from rest_framework import generics
from rest_framework.response import Response
from core.apps.accounts.serializers import permission as serializers
from core.apps.accounts.models.permission import Permission
from core.apps.accounts.models.permission import Permission, PermissionToAction, PermissionToTab
from core.apps.accounts.permissions.permissions import HasRolePermission
class PermissionListApiView(generics.ListAPIView):
queryset = Permission.objects.prefetch_related('permission_tab')
serializer_class = serializers.PermissionListSerializer
queryset = None
permission_classes = [HasRolePermission]
pagination_class = None
def get(self, request):
permissions = Permission.objects.all()
permission_to_tabs = PermissionToTab.objects.all()
permission_to_actions = PermissionToAction.objects.all()
serializer = self.serializer_class(permissions, many=True)
tab_permissions = serializers.PermissionToTabListSerializer(permission_to_tabs, many=True)
action_permissions = serializers.PermissionToActionListSerializer(permission_to_actions, many=True)
return Response(
{
'success': True,
'permissions': serializer.data,
'tab_permissions': tab_permissions.data,
'action_permissions': action_permissions.data
},
status=200
)