kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
Fix #58: enabling registrations is now done via a preference
rodzic
3c1e76e95d
commit
3dd1a20b68
|
@ -1,15 +1,10 @@
|
||||||
from allauth.account.adapter import DefaultAccountAdapter
|
from allauth.account.adapter import DefaultAccountAdapter
|
||||||
|
|
||||||
from django.conf import settings
|
from dynamic_preferences.registries import global_preferences_registry
|
||||||
|
|
||||||
|
|
||||||
class FunkwhaleAccountAdapter(DefaultAccountAdapter):
|
class FunkwhaleAccountAdapter(DefaultAccountAdapter):
|
||||||
|
|
||||||
def is_open_for_signup(self, request):
|
def is_open_for_signup(self, request):
|
||||||
|
manager = global_preferences_registry.manager()
|
||||||
if settings.REGISTRATION_MODE == "disabled":
|
return manager['users__registration_enabled']
|
||||||
return False
|
|
||||||
if settings.REGISTRATION_MODE == "public":
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
|
@ -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
|
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')
|
url = reverse('rest_register')
|
||||||
data = {
|
data = {
|
||||||
'username': 'test1',
|
'username': 'test1',
|
||||||
|
@ -14,7 +14,7 @@ def test_can_create_user_via_api(settings, client, db):
|
||||||
'password1': 'testtest',
|
'password1': 'testtest',
|
||||||
'password2': 'testtest',
|
'password2': 'testtest',
|
||||||
}
|
}
|
||||||
settings.REGISTRATION_MODE = "public"
|
preferences['users__registration_enabled'] = True
|
||||||
response = client.post(url, data)
|
response = client.post(url, data)
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ def test_can_create_user_via_api(settings, client, db):
|
||||||
assert u.username == 'test1'
|
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')
|
url = reverse('rest_register')
|
||||||
data = {
|
data = {
|
||||||
'username': 'test1',
|
'username': 'test1',
|
||||||
|
@ -30,7 +30,7 @@ def test_can_disable_registration_view(settings, client, db):
|
||||||
'password1': 'testtest',
|
'password1': 'testtest',
|
||||||
'password2': 'testtest',
|
'password2': 'testtest',
|
||||||
}
|
}
|
||||||
settings.REGISTRATION_MODE = "disabled"
|
preferences['users__registration_enabled'] = False
|
||||||
response = client.post(url, data)
|
response = client.post(url, data)
|
||||||
assert response.status_code == 403
|
assert response.status_code == 403
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue