Fix #58: enabling registrations is now done via a preference
This commit is contained in:
parent
3c1e76e95d
commit
3dd1a20b68
|
@ -1,15 +1,10 @@
|
|||
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']
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue