from rest_framework import generics, permissions, viewsets from rest_framework_simplejwt.views import TokenObtainPairView from django.contrib.auth import get_user_model from .serializers import RegisterSerializer, UserSerializer, CustomTokenObtainPairSerializer User = get_user_model() class CustomTokenObtainPairView(TokenObtainPairView): serializer_class = CustomTokenObtainPairSerializer class RegisterView(generics.CreateAPIView): queryset = User.objects.all() serializer_class = RegisterSerializer permission_classes = [permissions.AllowAny] class UserProfileView(generics.RetrieveUpdateAPIView): serializer_class = UserSerializer permission_classes = [permissions.IsAuthenticated] def get_object(self): return self.request.user class UserListView(generics.ListAPIView): """ List all users in the current tenant. Used for task assignment dropdown. """ serializer_class = UserSerializer permission_classes = [permissions.IsAuthenticated] pagination_class = None # Return all users as a list, not paginated def get_queryset(self): return User.objects.filter(tenant=self.request.tenant, is_active=True).order_by('first_name', 'last_name')