diff --git a/core/apps/accounts/serializers/permission.py b/core/apps/accounts/serializers/permission.py index 7d5ec16..903548c 100644 --- a/core/apps/accounts/serializers/permission.py +++ b/core/apps/accounts/serializers/permission.py @@ -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' ] \ No newline at end of file diff --git a/core/apps/accounts/views/permission.py b/core/apps/accounts/views/permission.py index a52739e..cef737e 100644 --- a/core/apps/accounts/views/permission.py +++ b/core/apps/accounts/views/permission.py @@ -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 \ No newline at end of file + + 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 + ) \ No newline at end of file