compat: add settings to add user model fields to the registration form

A2_REGISTRATION_FIELDS list additional fields for the form
A2_REGISTRATION_REQUIRED_FIELDS list fields that must be required
This commit is contained in:
Benjamin Dauvergne 2014-07-04 10:27:47 +02:00
parent 4c2ca1e29e
commit c86342783f
2 changed files with 8 additions and 2 deletions

View File

@ -105,6 +105,8 @@ default_settings = dict(
A2_REGISTRATION_FORM_USERNAME_LABEL=Setting(default=_('Username')),
A2_REGISTRATION_REALM=Setting(default=None, definition='Default realm to assign to self-registrated users'),
A2_REGISTRATION_GROUPS=Setting(default=[], definition='Default groups for self-registered users'),
A2_REGISTRATION_FIELDS=Setting(default=[], definition='Fields from the user model that must appear on the registration form'),
A2_REGISTRATION_REQUIRED_FIELDS=Setting(default=[], definition='Fields from the registration form that must be required'),
A2_REALMS=Setting(default=[], definition='List of realms to search user accounts'),
A2_USERNAME_REGEX=Setting(default=None, definition='Regex that username must validate'),
A2_USERNAME_HELP_TEXT=Setting(default=None, definition='Help text to explain validation rules of usernames'),

View File

@ -6,6 +6,8 @@ except ImportError:
from django.contrib.auth.models import User
get_user_model = lambda: User
from . import app_settings
user_model_label = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
use_attribute_aggregator = 'authentic2.attribute_aggregator' \
@ -18,7 +20,8 @@ def get_registration_fields():
User = get_user_model()
username_field = getattr(User, 'USERNAME_FIELD', 'username')
field_names = getattr(User, 'REGISTER_FIELDS', get_required_fields())
return [username_field] + list(field_names)
setting_fields = app_settings.A2_REGISTRATION_FIELDS
return [username_field] + list(field_names) + list(setting_fields)
def get_required_fields():
"""
@ -27,4 +30,5 @@ def get_required_fields():
User = get_user_model()
username_field = getattr(User, 'USERNAME_FIELD', 'username')
field_names = getattr(User, 'REQUIRED_FIELDS', [])
return [username_field] + list(field_names)
setting_fields = app_settings.A2_REGISTRATION_REQUIRED_FIELDS
return [username_field] + list(field_names) + list(setting_fields)