mirror of
https://github.com/thecyberlearn/netcop-ai.git
synced 2026-08-18 13:33:00 +00:00
- Add new Django apps: agents and frontend with URL routing - Configure static files and templates directories in settings - Add CSRF exemption and authentication to user endpoints - Switch Stripe currency from USD to AED - Add user management script and static assets - Include REST framework token authentication 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
from rest_framework import status
|
|
from rest_framework.decorators import api_view, permission_classes
|
|
from rest_framework.permissions import AllowAny
|
|
from rest_framework.response import Response
|
|
from rest_framework.authtoken.models import Token
|
|
from django.contrib.auth import login
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
from .serializers import UserRegistrationSerializer, UserLoginSerializer, UserSerializer
|
|
|
|
|
|
@csrf_exempt
|
|
@api_view(['POST'])
|
|
@permission_classes([AllowAny])
|
|
def register(request):
|
|
serializer = UserRegistrationSerializer(data=request.data)
|
|
if serializer.is_valid():
|
|
user = serializer.save()
|
|
token, created = Token.objects.get_or_create(user=user)
|
|
return Response({
|
|
'user': UserSerializer(user).data,
|
|
'token': token.key
|
|
}, status=status.HTTP_201_CREATED)
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
|
|
@csrf_exempt
|
|
@api_view(['POST'])
|
|
@permission_classes([AllowAny])
|
|
def login_view(request):
|
|
serializer = UserLoginSerializer(data=request.data)
|
|
if serializer.is_valid():
|
|
user = serializer.validated_data['user']
|
|
login(request, user)
|
|
token, created = Token.objects.get_or_create(user=user)
|
|
return Response({
|
|
'user': UserSerializer(user).data,
|
|
'token': token.key
|
|
})
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
|
|
@api_view(['GET'])
|
|
@permission_classes([]) # Use default authentication from settings
|
|
def profile(request):
|
|
serializer = UserSerializer(request.user)
|
|
return Response(serializer.data)
|