Unverified Commit a20a63d6 authored by Agate's avatar Agate 💬
Browse files

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

parent e812de28
......@@ -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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment