added active to Project

This commit is contained in:
2025-05-25 21:21:41 +02:00
parent 635ad35c55
commit 80a2eb5b5d
10 changed files with 334 additions and 32 deletions

View File

@@ -8,7 +8,12 @@ class UserSerializer(ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'email', 'age', 'can_be_contacted', 'can_data_be_shared']
fields = ['id',
'username',
'email',
'age',
'can_be_contacted',
'can_data_be_shared']
class UserUpdateSerializer(ModelSerializer):
@@ -18,15 +23,19 @@ class UserUpdateSerializer(ModelSerializer):
fields = ['email', 'can_be_contacted', 'can_data_be_shared']
class UserRegisterSerializer(ModelSerializer):
password2 = serializers.CharField(style={'input-type': 'password'}, write_only=True)
password2 = serializers.CharField(write_only=True)
password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ['username', 'email', 'password', 'password2', 'age', 'can_be_contacted', 'can_data_be_shared']
extra_kwargs = {'password': {'write_only': True}}
fields = ['username',
'email',
'password',
'password2',
'age',
'can_be_contacted',
'can_data_be_shared']
def validate(self, data):
if data['password'] != data['password2']:

View File

@@ -30,6 +30,10 @@ class UserCreateView(APIView):
#return Response("prout", status=status.HTTP_226_IM_USED)
def post(self, request):
"""
User subscription
Args:
"""
serializer = UserRegisterSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save()
@@ -37,8 +41,10 @@ class UserCreateView(APIView):
"message": "User created successfully",
"data": serializer.data
}
return Response(data=response, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response(data=response,
status=status.HTTP_201_CREATED)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
class PasswordUpdateView(APIView):
@@ -49,12 +55,15 @@ class PasswordUpdateView(APIView):
serializer = PasswordUpdateSerializer(data=request.data)
if serializer.is_valid():
if not user.check_password(serializer.data.get("old_password")):
return Response({"old_password":"Wrong password"}, status=status.HTTP_400_BAD_REQUEST)
return Response({"old_password":"Wrong password"},
status=status.HTTP_400_BAD_REQUEST)
user.set_password(serializer.data.get('new_password'))
user.save()
update_session_auth_hash(request, user)
return Response(serializer.errors, status=status.HTTP_204_NO_CONTENT)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.errors,
status=status.HTTP_204_NO_CONTENT)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
class UserView(APIView):
permission_classes = [IsAuthenticated]
@@ -64,24 +73,29 @@ class UserView(APIView):
def put(self, request):
user = request.user
print("coucou", request.data['user'])
serializer = UserUpdateSerializer(user, data=request.data)
print(serializer.initial_data)
if serializer.is_valid():
serializer.save()
return Response("Data updated", status=status.HTTP_201_CREATED)
return Response("Error", status=status.HTTP_400_BAD_REQUEST)
return Response("Data updated",
status=status.HTTP_201_CREATED)
return Response("Error",
status=status.HTTP_400_BAD_REQUEST)
def delete(self, request):
user = request.user
username = request.user.username
user.delete()
return Response(f"User {username} deleted.", status=status.HTTP_204_NO_CONTENT)
if 'user' in request.data:
if username == request.data['user']:
user.delete()
return Response(f"User {username} deleted.",
status=status.HTTP_204_NO_CONTENT)
return Response("Token's owner and user provided don't match",
status=status.HTTP_400_BAD_REQUEST)
return Response("Username to delete must be given in data",
status=status.HTTP_400_BAD_REQUEST)
class UserRegistrationViewSet(ModelViewSet):
#serializer_class = UserRegistrationSerializer
def get_queryset(self):
return User.objects.get(self.request.user)