ccdb-api/ccdb/api/views.py
2016-06-15 13:27:56 -07:00

49 lines
1.6 KiB
Python

from django.contrib.auth import user_logged_in
from rest_framework import status
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
from rest_framework.reverse import reverse
from rest_framework.viewsets import ViewSet
from djoser.views import LoginView, PasswordResetView, PasswordResetConfirmView
class Login(LoginView):
def action(self, serializer):
user = serializer.user
token, _ = Token.objects.get_or_create(user=user)
user_logged_in.send(sender=user.__class__, request=self.request, user=user)
return Response(
data={'token': token.key, 'id': token.user_id},
status=status.HTTP_200_OK,
)
class PasswordReset(PasswordResetView):
"""Overriding to return empty object, for ember-ajax"""
def action(self, serializer):
response = super(PasswordReset, self).action(serializer)
response.data = {}
return response
class PasswordResetConfirm(PasswordResetConfirmView):
"""Overriding to return empty object, for ember-ajax"""
def action(self, serializer):
response = super(PasswordResetConfirm, self).action(serializer)
response.data = {}
return response
class AdminURLs(ViewSet):
def get_view_name(self):
return 'Admin URLs List'
def list(self, request, *args, **kwargs):
urls = [
['collection-type', 'collections_ccdb', 'collectiontype'],
]
data = [{'id': x[0], 'url': reverse('admin:{}_{}_changelist'.format(x[1], x[2]) , request=request)} for x in urls]
return Response(data)