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

merge-requests/154/head
Eliot Berriot 2018-02-24 12:20:42 +01:00
rodzic 3c1e76e95d
commit 3dd1a20b68
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: DD6965E2476E5C27
3 zmienionych plików z 22 dodań i 12 usunięć

Wyświetl plik

@ -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']

Wyświetl plik

@ -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?'
)

Wyświetl plik

@ -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