kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
Fixed issue with confirmation email not sending when signup-approval was enabled
rodzic
e812de28c8
commit
a20a63d6ed
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue