|
|
|
|
@ -4,9 +4,10 @@ from django.shortcuts import redirect |
|
|
|
|
from rest_framework.views import APIView |
|
|
|
|
from rest_framework.renderers import JSONRenderer |
|
|
|
|
from rest_framework.response import Response |
|
|
|
|
from django.db.models import Q |
|
|
|
|
|
|
|
|
|
from access.models import Invite |
|
|
|
|
from access.serializers import UserInitSerializer |
|
|
|
|
from access.serializers import UserInitSerializer, UserSearchSerializer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TeacherListView(APIView): |
|
|
|
|
@ -37,6 +38,55 @@ class InfoUserView(APIView): |
|
|
|
|
return Response('anonymous', status=self.status_code) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FindUserView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
status_code = 200 |
|
|
|
|
|
|
|
|
|
def get(self, request): |
|
|
|
|
if request.user.is_authenticated() and \ |
|
|
|
|
(request.user.is_superuser |
|
|
|
|
or 'managers' in request.user.groups.all() or 'lead_managers' in request.user.groups.all()): |
|
|
|
|
|
|
|
|
|
key = request.GET.get('key', None) |
|
|
|
|
count = int(request.GET.get('count', '10')) |
|
|
|
|
|
|
|
|
|
if key: |
|
|
|
|
res = get_user_model().objects.filter( |
|
|
|
|
Q(id__contains=key) | Q(email__contains=key.lower()) | Q(first_name__contains=key) | |
|
|
|
|
Q(last_name__contains=key) | Q(account__phone__contains=key), groups__name='students' |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
else: |
|
|
|
|
res = get_user_model().objects.all() |
|
|
|
|
|
|
|
|
|
res = res[:(count if len(res) > count else len(res))] |
|
|
|
|
|
|
|
|
|
return Response([ |
|
|
|
|
UserSearchSerializer(i).data for i in res], |
|
|
|
|
status=self.status_code |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
return Response('Permission denied', status=403) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DetailUserView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
def get(request, pk): |
|
|
|
|
if request.user.is_authenticated() and \ |
|
|
|
|
(request.user.is_superuser or request.user.is_staff or request.user.id == pk): |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
user = get_user_model().objects.get(id=pk) |
|
|
|
|
except get_user_model().DoesNotExist: |
|
|
|
|
return Response("User doesn't exist", status=404) |
|
|
|
|
|
|
|
|
|
return Response(UserInitSerializer(user).data, status=200) |
|
|
|
|
|
|
|
|
|
return Response('Permission denied', status=403) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RegistrationView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
|
|
|
|
|
@ -98,4 +148,4 @@ class LogoutView(APIView): |
|
|
|
|
def post(request): |
|
|
|
|
if request.user.is_authenticated(): |
|
|
|
|
auth.logout(request) |
|
|
|
|
return Response(status=204) |
|
|
|
|
return Response(status=204) |
|
|
|
|
|