43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from django_core.mixins import BaseViewSetMixin
|
|
from drf_spectacular.utils import extend_schema
|
|
from rest_framework.permissions import AllowAny, IsAdminUser
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
|
from core.apps.accounts.models.permission import PermissionToAction, PermissionToTab, Permission, Role
|
|
from core.apps.accounts.serializers.permission import PermissionToActionSerializer, PermissionToTabSerializer, \
|
|
PermissionSerializer, RoleListSerializer
|
|
|
|
|
|
@extend_schema(tags=["permission"])
|
|
class PermissionToActionViewSet(BaseViewSetMixin, ModelViewSet):
|
|
queryset = PermissionToAction.objects.all()
|
|
serializer_class = PermissionToActionSerializer
|
|
|
|
action_serializer_class = {
|
|
'create': PermissionToActionSerializer,
|
|
'update': PermissionToActionSerializer,
|
|
}
|
|
|
|
action_permission_classes = {
|
|
'create': [AllowAny],
|
|
'destroy': [IsAdminUser],
|
|
}
|
|
|
|
|
|
@extend_schema(tags=["permission"])
|
|
class PermissionToTabViewSet(BaseViewSetMixin, ModelViewSet):
|
|
queryset = PermissionToTab.objects.all()
|
|
serializer_class = PermissionToTabSerializer
|
|
|
|
|
|
|
|
@extend_schema(tags=["permission"])
|
|
class PermissionViewSet(BaseViewSetMixin, ModelViewSet):
|
|
queryset = Permission.objects.all()
|
|
serializer_class = PermissionSerializer
|
|
|
|
|
|
class RoleViewSet(BaseViewSetMixin, ModelViewSet):
|
|
queryset = Role.objects.all()
|
|
serializer_class = RoleListSerializer
|