All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 38s
26 lines
1.1 KiB
Python
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)
|