Skip to content
Snippets Groups Projects
Verified Commit 3dd1a20b authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Fix #58: enabling registrations is now done via a preference

parent 3c1e76e9
No related branches found
No related tags found
No related merge requests found
from allauth.account.adapter import DefaultAccountAdapter
from django.conf import settings
from dynamic_preferences.registries import global_preferences_registry
class FunkwhaleAccountAdapter(DefaultAccountAdapter):
def is_open_for_signup(self, request):
if settings.REGISTRATION_MODE == "disabled":
return False
if settings.REGISTRATION_MODE == "public":
return True
return False
manager = global_preferences_registry.manager()
return manager['users__registration_enabled']
from dynamic_preferences import types
from dynamic_preferences.registries import global_preferences_registry
users = types.Section('users')
@global_preferences_registry.register
class RegistrationEnabled(types.BooleanPreference):
show_in_api = True
section = users
name = 'registration_enabled'
default = False
verbose_name = (
'Can visitors open a new account on this instance?'
)
......@@ -6,7 +6,7 @@ from django.urls import reverse
from funkwhale_api.users.models import User
def test_can_create_user_via_api(settings, client, db):
def test_can_create_user_via_api(preferences, client, db):
url = reverse('rest_register')
data = {
'username': 'test1',
......@@ -14,7 +14,7 @@ def test_can_create_user_via_api(settings, client, db):
'password1': 'testtest',
'password2': 'testtest',
}
settings.REGISTRATION_MODE = "public"
preferences['users__registration_enabled'] = True
response = client.post(url, data)
assert response.status_code == 201
......@@ -22,7 +22,7 @@ def test_can_create_user_via_api(settings, client, db):
assert u.username == 'test1'
def test_can_disable_registration_view(settings, client, db):
def test_can_disable_registration_view(preferences, client, db):
url = reverse('rest_register')
data = {
'username': 'test1',
......@@ -30,7 +30,7 @@ def test_can_disable_registration_view(settings, client, db):
'password1': 'testtest',
'password2': 'testtest',
}
settings.REGISTRATION_MODE = "disabled"
preferences['users__registration_enabled'] = False
response = client.post(url, data)
assert response.status_code == 403
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment