first push
This commit is contained in:
75
authentication/permission_views.py
Normal file
75
authentication/permission_views.py
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
# ویوست و توابعی که برای ایجاد سطج دستزسی جدید در سیستم استفاده میشوند
|
||||
|
||||
|
||||
from django.contrib.auth.models import Group
|
||||
from oauth2_provider.contrib.rest_framework import TokenHasScope, TokenHasReadWriteScope
|
||||
from rest_framework import viewsets, serializers, status
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from . import permissions
|
||||
from rest_framework.response import Response
|
||||
import logging
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class GroupSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Group
|
||||
fields = ['name']
|
||||
|
||||
|
||||
class GroupPermissionViewset(viewsets.ModelViewSet):
|
||||
authentication_classes = []
|
||||
permission_classes = [TokenHasReadWriteScope]
|
||||
queryset = Group.objects.all()
|
||||
serializer_class = GroupSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super(GroupPermissionViewset, self).get_queryset()
|
||||
log.error(f"here {self.request.user}")
|
||||
|
||||
return queryset
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
queryset = super(GroupPermissionViewset, self).get_queryset()
|
||||
log.error(f"here {request.user}")
|
||||
|
||||
serializer = GroupSerializer(queryset, many=True)
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.create(validated_data=request.data)
|
||||
return Response(serializer.data)
|
||||
return Response(serializer.errors)
|
||||
|
||||
def retrieve(self, request, pk=None, *args, **kwargs):
|
||||
key = request.GET['name']
|
||||
log.error(f"here {request.user}")
|
||||
queryset = super(GroupPermissionViewset, self).get_queryset()
|
||||
|
||||
queryset = queryset.get(name__exact=key)
|
||||
serializer = self.serializer_class(queryset)
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
|
||||
def update(self, request, pk=None, *args, **kwargs):
|
||||
key = request.GET['name']
|
||||
queryset = super(GroupPermissionViewset, self).get_queryset()
|
||||
queryset = queryset.get(name__exact=key)
|
||||
serializer = self.serializer_class(queryset)
|
||||
serializer.update(instance=queryset, validated_data=request.data)
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
|
||||
def partial_update(self, request, pk=None, *args, **kwargs):
|
||||
pass
|
||||
|
||||
def destroy(self, request, pk=None, *args, **kwargs):
|
||||
key = request.GET['name']
|
||||
queryset = super(GroupPermissionViewset, self).get_queryset()
|
||||
|
||||
queryset = queryset.get(name__exact=key)
|
||||
queryset.delete()
|
||||
queryset.save()
|
||||
return Response(status=status.HTTP_200_OK)
|
||||
Reference in New Issue
Block a user