magpie.ui.login =============== .. py:module:: magpie.ui.login Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/magpie/ui/login/views/index Attributes ---------- .. autoapisummary:: magpie.ui.login.LOGGER Classes ------- .. autoapisummary:: magpie.ui.login.LoginViews Functions --------- .. autoapisummary:: magpie.ui.login.get_constant magpie.ui.login.get_logger magpie.ui.login.includeme Package Contents ---------------- .. py:function:: get_constant(constant_name: magpie.typedefs.Str, settings_container: Optional[magpie.typedefs.AnySettingsContainer] = None, settings_name: Optional[magpie.typedefs.Str] = None, default_value: Optional[magpie.typedefs.SettingValue] = None, raise_not_set: bool = True, raise_missing: bool = True, print_missing: bool = False, empty_missing: bool = False) -> magpie.typedefs.SettingValue Search in order for matched value of :paramref:`constant_name`: 1. search in :py:data:`MAGPIE_CONSTANTS` 2. search in settings if specified 3. search alternative setting names (see below) 4. search in :mod:`magpie.constants` definitions 5. search in environment variables Parameter :paramref:`constant_name` is expected to have the format ``MAGPIE_[VARIABLE_NAME]`` although any value can be passed to retrieve generic settings from all above-mentioned search locations. If :paramref:`settings_name` is provided as alternative name, it is used as is to search for results if :paramref:`constant_name` was not found. Otherwise, ``magpie.[variable_name]`` is used for additional search when the format ``MAGPIE_[VARIABLE_NAME]`` was used for :paramref:`constant_name` (i.e.: ``MAGPIE_ADMIN_USER`` will also search for ``magpie.admin_user`` and so on for corresponding constants). :param constant_name: key to search for a value :param settings_container: WSGI application settings container (if not provided, uses found one in current thread) :param settings_name: alternative name for `settings` if specified :param default_value: default value to be returned if not found anywhere, and exception raises are disabled. :param raise_not_set: raise an exception if the found key is ``None``, search until last case if others are ``None`` :param raise_missing: raise exception if key is not found anywhere :param print_missing: print message if key is not found anywhere, return ``None`` :param empty_missing: consider an empty value for an existing key as if it was missing (i.e.: as if not set). :returns: found value or `default_value` :raises ValueError: if resulting value is invalid based on options (by default raise missing/empty/``None`` value) :raises LookupError: if no appropriate value could be found from all search locations (according to options) .. py:class:: LoginViews(request) Bases: :py:obj:`magpie.ui.utils.AdminRequests`, :py:obj:`magpie.ui.utils.BaseViews` Handles UI operations related to login to, logout from, or registration of user accounts. .. warning:: Admin requests are applicable only when using the temporary login. The temporary session is handled by dispatching operations to :class:`AdminRequest`. Only those methods should work with elevated session to ensure that returning those views in this class are back to unauthenticated level access. .. py:method:: request_providers_json() .. py:method:: login() .. py:method:: logout() .. py:method:: get_group_info(group_name) .. py:method:: register_user() User self-registration form results. .. note:: The template employed for this form is reused for user creation by an administrator as the fields and validation of inputs are essentially the same. Their actual processing is different though, as in this case, the user attempting registration is not yet logged nor has any administrative access. .. seealso:: :meth:`magpie.ui.management.views.ManagementViews.add_user` .. py:function:: get_logger(name: magpie.typedefs.Str, level: Optional[int] = None, force_stdout: bool = None, message_format: Optional[magpie.typedefs.Str] = None, datetime_format: Optional[magpie.typedefs.Str] = None) -> logging.Logger Immediately sets the logger level to avoid duplicate log outputs from the `root logger` and `this logger` when `level` is ``logging.NOTSET``. .. py:data:: LOGGER .. py:function:: includeme(config)