from dynamic_preferences import types from dynamic_preferences.registries import global_preferences_registry from funkwhale_api.common import preferences as common_preferences from . import models 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 = 'Open registrations to new users' help_text = ( 'When enabled, new users will be able to register on this instance.' ) @global_preferences_registry.register class DefaultPermissions(common_preferences.StringListPreference): show_in_api = True section = users name = 'default_permissions' default = [] verbose_name = 'Default permissions' help_text = ( 'A list of default preferences to give to all registered users.' ) choices = [ (k, c['label']) for k, c in models.PERMISSIONS_CONFIGURATION.items() ] field_kwargs = { 'choices': choices, 'required': False, }