crmbackend/crm/views/auth_views.py
vickytechkey 05e1a1a149
All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 38s
initial commit
2026-08-15 19:22:16 +05:30

26 lines
1.1 KiB
Python

from rest_framework_simplejwt.views import TokenObtainPairView
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from crm.serializers import CRMAdminSerializer
class CRMTokenObtainPairSerializer(TokenObtainPairSerializer):
@classmethod
def get_token(cls, user):
token = super().get_token(user)
# Add custom claims if user has CRMAdmin profile
if hasattr(user, 'crm_admin'):
token['role'] = user.crm_admin.role
return token
class CRMTokenObtainPairView(TokenObtainPairView):
serializer_class = CRMTokenObtainPairSerializer
@api_view(['GET'])
@permission_classes([IsAuthenticated])
def get_current_admin(request):
if hasattr(request.user, 'crm_admin'):
serializer = CRMAdminSerializer(request.user.crm_admin)
return Response(serializer.data)
return Response({"detail": "User is not a CRM admin profile"}, status=403)