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): class PermissionToTabListSerializer(serializers.ModelSerializer):
permission_to_actions = PermissionToActionListSerializer(many=True)
class Meta: class Meta:
model = PermissionToTab model = PermissionToTab
fields = [ fields = [
'id', 'name', 'code', 'permission_to_actions' 'id', 'name', 'code'
] ]
class PermissionListSerializer(serializers.ModelSerializer): class PermissionListSerializer(serializers.ModelSerializer):
permission_tab = PermissionToTabListSerializer(many=True)
class Meta: class Meta:
model = Permission model = Permission
fields = [ 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 rest_framework.response import Response
from core.apps.accounts.serializers import permission as serializers 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 from core.apps.accounts.permissions.permissions import HasRolePermission
class PermissionListApiView(generics.ListAPIView): class PermissionListApiView(generics.ListAPIView):
queryset = Permission.objects.prefetch_related('permission_tab')
serializer_class = serializers.PermissionListSerializer serializer_class = serializers.PermissionListSerializer
queryset = None
permission_classes = [HasRolePermission] 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
)