hawat.blueprints.auth_dev package

This Hawat pluggable module provides special authentication method, that is particularly usable for developers and enables them to impersonate any user.

After enabling this module special authentication endpoint will be available and will provide simple authentication form with list of all currently available user accounts. It will be possible for that user to log in as any other user without entering password.

This module is disabled by default in production environment and enabled by default in development environment.

Warning

This module must never ever be enabled on production systems, because it is a huge security risk and enables possible access control management violation. You have been warned!

Provided endpoints

/auth_dev/login

Page providing special developer login form.

  • Authentication: no authentication

  • Methods: GET, POST

hawat.blueprints.auth_dev.BLUEPRINT_NAME = 'auth_dev'

Name of the blueprint as module global constant.

class hawat.blueprints.auth_dev.DevAuthBlueprint(name, import_name, **kwargs)[source]

Bases: HawatBlueprint

Pluggable module - developer authentication service (auth_dev).

classmethod get_module_title()[source]

Get human readable name for this blueprint/module.

Returns

Name (short summary) of the blueprint/module.

Return type

str

class hawat.blueprints.auth_dev.LoginView[source]

Bases: HTMLMixin, SQLAlchemyMixin, BaseLoginView

View enabling special developer login.

property dbmodel

This property must be implemented in each subclass to return reference to appropriate model class based on SQLAlchemy declarative base.

classmethod get_menu_title(**kwargs)[source]

Return menu entry title for the view.

Default implementation returns the return value of hawat.view.BaseView.get_view_title() method by default.

Parameters

kwargs (dict) – Optional parameters.

Returns

Menu entry title for the view.

Return type

str

get_user_login()[source]

Get login of the user that is being authenticated.

classmethod get_view_title(**kwargs)[source]

Return title for the view, that will be displayed in the title tag of HTML head element and also as the content of page header in h2 tag.

Default implementation returns the return value of hawat.view.BaseView.get_menu_title() method by default.

Parameters

kwargs (dict) – Optional parameters.

Returns

Title for the view.

Return type

str

methods: ClassVar[Optional[Collection[str]]] = ['GET', 'POST']

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

property search_by

Return model`s attribute (column) according to which to search for a single item.

class hawat.blueprints.auth_dev.RegisterView[source]

Bases: HTMLMixin, SQLAlchemyMixin, BaseRegisterView

View responsible for registering new user account into application.

property dbchlogmodel

This property must be implemented in each subclass to return reference to appropriate model class based on SQLAlchemy declarative base.

property dbmodel

This property must be implemented in each subclass to return reference to appropriate model class based on SQLAlchemy declarative base.

static get_item_form(item)[source]

Hook method. Must return instance of flask_wtf.FlaskForm appropriate for given item class.

classmethod get_menu_title(**kwargs)[source]

Implementation of hawat.view.BaseView.get_menu_title().

classmethod get_view_title(**kwargs)[source]

Implementation of hawat.view.BaseView.get_view_title().

methods: ClassVar[Optional[Collection[str]]] = ['GET', 'POST']

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

hawat.blueprints.auth_dev.get_blueprint()[source]

Mandatory interface for hawat.Hawat and factory function. This function must return a valid instance of hawat.app.HawatBlueprint or flask.Blueprint.