в процессе

feature/fix_generate_pass
Andrey 8 years ago
parent 29d695fa78
commit 89f872f98c
  1. 68
      access/new_view.py

@ -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)
Loading…
Cancel
Save