32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
from django.contrib.auth.models import Group
|
|
from django.contrib.auth import get_user_model
|
|
from rest_framework import viewsets
|
|
from api.serializers import UserSerializer, GroupSerializer
|
|
from allauth.account.views import ConfirmEmailView
|
|
|
|
|
|
class UserViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows users to be viewed or edited.
|
|
"""
|
|
queryset = get_user_model().objects.all().order_by('-date_joined')
|
|
serializer_class = UserSerializer
|
|
|
|
|
|
class GroupViewSet(viewsets.ReadOnlyModelViewSet):
|
|
"""
|
|
API endpoint that allows groups to be viewed or edited.
|
|
"""
|
|
queryset = Group.objects.all()
|
|
serializer_class = GroupSerializer
|
|
|
|
|
|
class CustomConfirmEmailView(ConfirmEmailView):
|
|
def get(self, *args, **kwargs):
|
|
try:
|
|
self.object = self.get_object()
|
|
except Http404:
|
|
self.object = None
|
|
user = get_user_model().objects.get(email=self.object.email_address.email)
|
|
redirect_url = reverse('user', args=(user.id,))
|
|
return redirect(redirect_url) |