first push

This commit is contained in:
2026-01-18 11:59:48 +03:30
commit 107854bde3
1100 changed files with 291872 additions and 0 deletions

View 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)