Fixed issue with confirmation email not sending when signup-approval was enabled

environments/review-docs-watch-ppxstk/deployments/4903
Agate 2020-04-20 15:42:29 +02:00
rodzic e812de28c8
commit a20a63d6ed
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6B501DFD73514E14
2 zmienionych plików z 15 dodań i 1 usunięć

Wyświetl plik

@ -5,6 +5,7 @@ from rest_framework import mixins, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
from funkwhale_api.common import authentication
from funkwhale_api.common import preferences
from . import models, serializers, tasks
@ -26,6 +27,13 @@ class RegisterView(registration_views.RegisterView):
def is_open_for_signup(self, request):
return get_adapter().is_open_for_signup(request)
def perform_create(self, serializer):
user = super().perform_create(serializer)
if not user.is_active:
# manual approval, we need to send the confirmation email by hand
authentication.send_email_confirmation(self.request, user)
return user
class VerifyEmailView(registration_views.VerifyEmailView):
action = "verify-email"

Wyświetl plik

@ -418,7 +418,9 @@ def test_username_with_existing_local_account_are_invalid(
assert "username" in response.data
def test_signup_with_approval_enabled(preferences, factories, api_client, mocker):
def test_signup_with_approval_enabled(
preferences, factories, api_client, mocker, mailoutbox, settings
):
url = reverse("rest_register")
data = {
"username": "test1",
@ -455,6 +457,10 @@ def test_signup_with_approval_enabled(preferences, factories, api_client, mocker
new_status="pending",
)
confirmation_message = mailoutbox[-1]
assert "confirm" in confirmation_message.body
assert settings.FUNKWHALE_HOSTNAME in confirmation_message.body
def test_signup_with_approval_enabled_validation_error(
preferences, factories, api_client