control one permission with same name for each page
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from rest_framework_simplejwt.authentication import JWTAuthentication
|
||||
from rest_framework.permissions import AllowAny, IsAuthenticated
|
||||
from apps.core.exceptions import ConflictException
|
||||
from rest_framework.exceptions import APIException
|
||||
from apps.authorization.api.v1.serializers import (
|
||||
RoleSerializer,
|
||||
@@ -64,6 +65,16 @@ class PermissionViewSet(viewsets.ModelViewSet):
|
||||
filter_backends = [filters.SearchFilter]
|
||||
search_fields = ['page__name', ]
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
if self.queryset.filter(name=request.data['name'], page_id=request.data['page']).exists():
|
||||
raise ConflictException('a permission with this page exists.')
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
else:
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class UserRelationViewSet(viewsets.ModelViewSet):
|
||||
""" Crud Operations for User Relations """
|
||||
|
||||
Reference in New Issue
Block a user