Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ jobs:
run: uv sync --all-extras

- name: Run tests
run: uv run pytest --junitxml=pytest.xml | tee pytest-coverage.txt
run: |
set -o pipefail
uv run pytest --junitxml=pytest.xml | tee pytest-coverage.txt

- name: Coverage comment
if: matrix.python-version == '3.12' && github.event_name == 'pull_request'
Expand Down
16 changes: 8 additions & 8 deletions bodepontoio/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django.contrib.auth import get_user_model
from rest_framework import permissions, status
from rest_framework.exceptions import AuthenticationFailed
from rest_framework.exceptions import ValidationError
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework_simplejwt.exceptions import TokenError
Expand Down Expand Up @@ -43,14 +43,14 @@ def post(self, request):
try:
user = User.objects.get(email=serializer.validated_data["email"])
except User.DoesNotExist:
raise AuthenticationFailed("Código inválido ou expirado.") from None
raise ValidationError("Código inválido ou expirado.") from None

if not user.is_active:
raise AuthenticationFailed("Conta de usuário desativada.")
raise ValidationError("Conta de usuário desativada.")

success, error = verify_otp(user, serializer.validated_data["code"], OTPCode.Purpose.LOGIN)
if not success:
raise AuthenticationFailed(error)
raise ValidationError(error)

if not user.auth.is_email_verified:
user.auth.is_email_verified = True
Expand Down Expand Up @@ -199,11 +199,11 @@ def post(self, request):
try:
user = User.objects.get(email=serializer.validated_data["email"])
except User.DoesNotExist:
raise AuthenticationFailed("Código inválido ou expirado.") from None
raise ValidationError("Código inválido ou expirado.") from None

success, error = verify_otp(user, serializer.validated_data["code"], OTPCode.Purpose.EMAIL_CONFIRM)
if not success:
raise AuthenticationFailed(error)
raise ValidationError(error)

user.auth.is_email_verified = True
user.auth.save(update_fields=["is_email_verified"])
Expand All @@ -223,11 +223,11 @@ def post(self, request):
try:
user = User.objects.get(email=serializer.validated_data["email"])
except User.DoesNotExist:
raise AuthenticationFailed("Código inválido ou expirado.") from None
raise ValidationError("Código inválido ou expirado.") from None

success, error = verify_otp(user, serializer.validated_data["code"], OTPCode.Purpose.PASSWORD_RESET)
if not success:
raise AuthenticationFailed(error)
raise ValidationError(error)

user.set_password(serializer.validated_data["new_password"])
user.save()
Expand Down
Loading