You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
from django.contrib.auth import get_user_model
|
|
from django.contrib import auth
|
|
from rest_framework.views import APIView
|
|
from rest_framework.renderers import JSONRenderer
|
|
from rest_framework.response import Response
|
|
|
|
from access.serializers import UserInitSerializer
|
|
|
|
|
|
class TeacherListView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request):
|
|
return Response([teacher.full_name() for teacher in get_user_model().objects.filter(
|
|
in_role='T',
|
|
is_active=True,
|
|
reg_status=4,
|
|
)], self.status_code)
|
|
|
|
|
|
class CheckUserView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request):
|
|
if request.user.is_authenticated() and (request.user.in_role in ['M', 'S', 'S2', 'A'] or request.user.is_admin):
|
|
return Response(True, status=self.status_code)
|
|
return Response(False, status=self.status_code)
|
|
|
|
|
|
class LoginView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request):
|
|
if not request.user.is_authenticated():
|
|
user = auth.authenticate(email=request.JSON.get('email'), password=request.JSON.get('password'))
|
|
return Response(UserInitSerializer(user).data, status=self.status_code)
|
|
return Response(status=403)
|
|
|
|
|
|
class LogoutView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 204
|
|
|
|
def get(self, request):
|
|
return Response(False, status=self.status_code) |