|
|
|
|
@ -5,6 +5,7 @@ from rest_framework.renderers import JSONRenderer |
|
|
|
|
from rest_framework.response import Response |
|
|
|
|
|
|
|
|
|
from access.serializers import UserInitSerializer |
|
|
|
|
from courses.models import Course |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TeacherListView(APIView): |
|
|
|
|
@ -12,11 +13,18 @@ class TeacherListView(APIView): |
|
|
|
|
status_code = 200 |
|
|
|
|
|
|
|
|
|
def get(self, request): |
|
|
|
|
return Response([teacher.full_name() for teacher in get_user_model().objects.filter( |
|
|
|
|
kwargs = dict( |
|
|
|
|
in_role='T', |
|
|
|
|
is_active=True, |
|
|
|
|
reg_status=4, |
|
|
|
|
)], self.status_code) |
|
|
|
|
) |
|
|
|
|
res = [] |
|
|
|
|
course_id = request.GET.get('course_id', 0) |
|
|
|
|
if course_id: |
|
|
|
|
kwargs['course_teachers'] = Course.objects.get(id=course_id) |
|
|
|
|
for teacher in get_user_model().objects.filter(**kwargs): |
|
|
|
|
res.append(teacher.full_name()) |
|
|
|
|
return Response(res, self.status_code) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CheckUserView(APIView): |
|
|
|
|
@ -29,20 +37,64 @@ class CheckUserView(APIView): |
|
|
|
|
return Response(False, status=self.status_code) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LoginView(APIView): |
|
|
|
|
class InfoUserView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
status_code = 200 |
|
|
|
|
|
|
|
|
|
def get(self, request): |
|
|
|
|
if request.user.is_authenticated(): |
|
|
|
|
return Response(UserInitSerializer(request.user).data, status=self.status_code) |
|
|
|
|
return Response('anonymous', status=self.status_code) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RegistrationView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
def post(request): |
|
|
|
|
try: |
|
|
|
|
user = get_user_model().objects.get(email=request.JSON['email'].lower()) |
|
|
|
|
except get_user_model().DoesNotExist: |
|
|
|
|
user = get_user_model().objects.create_user( |
|
|
|
|
email=request.JSON['email'].lower(), |
|
|
|
|
) |
|
|
|
|
user.set_password(request.JSON['password']) |
|
|
|
|
user.reg_status = '2' |
|
|
|
|
user.save() |
|
|
|
|
return Response(UserInitSerializer(user).data, status=200) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ChangePasswordView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
def post(request): |
|
|
|
|
if request.user.is_authenticated and not request.user.check_password(request.JSON['old_password']): |
|
|
|
|
return Response("Неверный пароль", status=404) |
|
|
|
|
request.user.set_password(request.JSON['new_password']) |
|
|
|
|
request.user.save() |
|
|
|
|
return Response("Пароль был изменён", status=200) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LoginView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
def post(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) |
|
|
|
|
try: |
|
|
|
|
auth.login(request, user) |
|
|
|
|
except AttributeError: |
|
|
|
|
return Response("Неверный пароль", status=404) |
|
|
|
|
return Response(UserInitSerializer(request.user).data, status=200) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LogoutView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
status_code = 204 |
|
|
|
|
|
|
|
|
|
def get(self, request): |
|
|
|
|
return Response(False, status=self.status_code) |
|
|
|
|
@staticmethod |
|
|
|
|
def post(request): |
|
|
|
|
if request.user.is_authenticated(): |
|
|
|
|
auth.logout(request) |
|
|
|
|
return Response(status=204) |