add login api

This commit is contained in:
behruz-dev
2025-08-01 10:16:36 +05:00
parent f89a257553
commit 0a2127d826
22 changed files with 307 additions and 7 deletions

View File

@@ -0,0 +1,27 @@
from rest_framework import generics, status
from rest_framework.response import Response
from rest_framework_simplejwt.tokens import RefreshToken
from core.apps.accounts.models.user import User
from core.apps.accounts.serializers.login import LoginSerializer
from core.apps.accounts.permissions.permissions import HasRolePermission
class LoginApiView(generics.GenericAPIView):
serializer_class = LoginSerializer
queryset = User.objects.all()
def post(self, request):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid(raise_exception=True):
user = serializer.validated_data.get('user')
token = RefreshToken.for_user(user)
user_data = {
'role': user.role.name,
'permissions': user.role.permissions.values_list('code', flat=True),
}
return Response(
{"access": str(token.access_token), "refresh": str(token), 'user_data': user_data},
status=status.HTTP_200_OK
)