Source code for tg_react.settings

from django.core.exceptions import ImproperlyConfigured
from django.conf import settings

try:
    from django.utils.module_loading import import_string

except ImportError:
    from django.utils.module_loading import import_by_path as import_string


# fields unconditionally excluded from user signup data
USER_SIGNUP_SKIPPED_FIELDS = {'id', 'is_staff', 'is_superuser', 'is_active', 'date_joined', 'last_login'}


[docs]def get_user_signup_fields(): return getattr(settings, 'TGR_USER_SIGNUP_FIELDS', ['name', ])
[docs]def get_signup_skipped_fields(): fields = getattr(settings, 'TGR_USER_SIGNUP_SKIPPED_FIELDS', []) return USER_SIGNUP_SKIPPED_FIELDS.union(fields)
[docs]def get_email_case_sensitive(): return getattr(settings, 'TGR_EMAIL_CASE_SENSITIVE', True) # True by default to maintain compatibility
[docs]def exclude_fields_from_user_details(): return getattr(settings, 'TGR_EXCLUDED_USER_FIELDS', [])
def _user_extra_fields(validate=False): fields = getattr(settings, 'TGR_USER_EXTRA_FIELDS', {}) if validate: if not isinstance(fields, dict): raise ImproperlyConfigured("settings.TGR_USER_EXTRA_FIELDS must be a dict") res = {} for name, conf in fields.items(): if validate and not isinstance(conf, (str, list)): raise ImproperlyConfigured("settings.TGR_USER_EXTRA_FIELDS value must be a module path or list[path, kwargs]") path = conf if not isinstance(conf, list) else conf[0] kwargs = {} if not isinstance(conf, list) else conf[1] or {} res[name] = [import_string(path), kwargs] return res
[docs]def get_password_recovery_url(): return getattr(settings, 'TGR_PASSWORD_RECOVERY_URL', '/reset_password/%s')
[docs]def get_post_login_handler(): return getattr(settings, 'TGR_POST_LOGIN_HANDLER', None)
[docs]def get_post_logout_handler(): return getattr(settings, 'TGR_POST_LOGOUT_HANDLER', None)
[docs]def get_static_dir(): return getattr(settings, 'TGR_STATICFILES_DIRS', settings.STATICFILES_DIRS)
[docs]def configure(): if not isinstance(exclude_fields_from_user_details(), (list, tuple)): raise ImproperlyConfigured("settings.TGR_EXCLUDED_USER_FIELDS must be list|tuple") if not isinstance(get_user_signup_fields(), (list, tuple)): raise ImproperlyConfigured("settings.TGR_USER_SIGNUP_FIELDS must be list|tuple") handler = get_post_login_handler() if handler is not None and not isinstance(handler, str): raise ImproperlyConfigured("settings.TGR_POST_LOGIN_HANDLER must be module path") handler = get_post_logout_handler() if handler is not None and not isinstance(handler, str): raise ImproperlyConfigured("settings.TGR_POST_LOGOUT_HANDLER must be module path") recovery_url = get_password_recovery_url() if not isinstance(recovery_url, str): raise ImproperlyConfigured("settings.TGR_PASSWORD_RECOVERY_URL must be str") try: recovery_url % 'TEST' except TypeError: raise ImproperlyConfigured( "settings.TGR_PASSWORD_RECOVERY_URL must contain a string " "formatting token for base64 encoded data")
configure() user_extra_fields = _user_extra_fields(validate=True)