diff --git a/backend/projects/perspective/views.py b/backend/projects/perspective/views.py index f0e70e4b..1d69410c 100644 --- a/backend/projects/perspective/views.py +++ b/backend/projects/perspective/views.py @@ -293,7 +293,7 @@ class QuestionViewSet(viewsets.ModelViewSet): class AnswerViewSet(viewsets.ModelViewSet): serializer_class = AnswerSerializer - http_method_names = ['get', 'post', 'delete'] # Allow GET, POST and DELETE (sua funcionalidade) + http_method_names = ['get', 'post', 'delete'] # Allow GET, POST and DELETE permission_classes = [IsAuthenticated, CanAnswerPerspective] filter_backends = [DjangoFilterBackend] filterset_fields = ['question'] @@ -308,14 +308,14 @@ class AnswerViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): question = serializer.validated_data['question'] - # Check if user already answered this question (mesclando as duas mensagens) + # Check if user already answered this question if Answer.objects.filter(question=question, user=self.request.user).exists(): raise serializers.ValidationError("You have already answered this item.") serializer.save(user=self.request.user) def perform_destroy(self, instance): - # Only allow users to delete their own answers (sua funcionalidade) + # Only allow users to delete their own answers if instance.user != self.request.user: raise serializers.ValidationError("You can only delete your own answers.") diff --git a/backend/users/serializers.py b/backend/users/serializers.py index 06ced543..209e6e53 100644 --- a/backend/users/serializers.py +++ b/backend/users/serializers.py @@ -41,6 +41,15 @@ class UserDetailSerializer(serializers.ModelSerializer): 'name': group.name } return groups_dict + + def validate_email(self, value): + """ + Validate that the email is unique, excluding the current user instance. + """ + user_id = self.instance.id if self.instance else None + if User.objects.filter(email=value).exclude(id=user_id).exists(): + raise serializers.ValidationError("Este email já está sendo usado por outro usuário. Por favor, escolha um email diferente.") + return value class RegisterSerializer(serializers.ModelSerializer): diff --git a/frontend/components/perspective/QuestionList.vue b/frontend/components/perspective/QuestionList.vue index c9e23d12..1d338cca 100644 --- a/frontend/components/perspective/QuestionList.vue +++ b/frontend/components/perspective/QuestionList.vue @@ -1,5 +1,17 @@