geonature.core.gn_permissions.admin¶
Classes¶
Overrides the QuerySelectField class from flask admin to allow |
|
Functions¶
|
|
|
|
|
|
|
|
|
Render a list of permissions for module-object-action item as an HTML table. |
|
|
|
Module Contents¶
- class geonature.core.gn_permissions.admin.RoleFilter[source]¶
Bases:
geonature.core.admin.utils.DynamicOptionsMixin
,flask_admin.contrib.sqla.filters.FilterEqual
- class geonature.core.gn_permissions.admin.ModuleFilter[source]¶
Bases:
geonature.core.admin.utils.DynamicOptionsMixin
,flask_admin.contrib.sqla.filters.FilterEqual
- class geonature.core.gn_permissions.admin.ObjectFilter[source]¶
Bases:
geonature.core.admin.utils.DynamicOptionsMixin
,flask_admin.contrib.sqla.filters.FilterEqual
- class geonature.core.gn_permissions.admin.ActionFilter[source]¶
Bases:
geonature.core.admin.utils.DynamicOptionsMixin
,flask_admin.contrib.sqla.filters.FilterEqual
- class geonature.core.gn_permissions.admin.ScopeFilter[source]¶
Bases:
geonature.core.admin.utils.DynamicOptionsMixin
,flask_admin.contrib.sqla.filters.FilterEqual
- geonature.core.gn_permissions.admin.list_permissions_formatter(permissions, available_permission, managable, current_user, return_url)[source]¶
Render a list of permissions for module-object-action item as an HTML table.
- This function generates an HTML table that displays permissions associated to specific
module, object, or action. Each permission is rendered with its status, expiration
date, and associated filters. If the permissions are manageable, edit and delete options are included for each permission.
Parameters¶
- permissionslist[Permission]
A list of permission objects to be rendered.
- available_permissionPermissionAvailable
the permission template.
- managablebool
A boolean indicating whether the permissions are manageable. If True, edit and delete options will be included in the rendered HTML.
- modelUser
current user
- return_urlstr
The URL to return to after performing an action (e.g., editing or deleting a permission).
Returns¶
- str
An HTML string representing the permissions table.
Notes¶
The function uses Bootstrap classes for styling the table and its elements. If a permission has filters, they are displayed as a list within the table cell. If a permission is not active, it is marked with a “table-secondary” class and a “text-danger” class for the expiration date. If a permission is active but has an expiration date, it is marked with a “text-success” class for the expiration date.
- geonature.core.gn_permissions.admin.permissions_count_formatter(view, context, model, name)[source]¶
- class geonature.core.gn_permissions.admin.OptionSelect2Widget[source]¶
Bases:
flask_admin.form.widgets.Select2Widget
- class geonature.core.gn_permissions.admin.OptionQuerySelectField(*args, **kwargs)[source]¶
Bases:
flask_admin.contrib.sqla.fields.QuerySelectField
Overrides the QuerySelectField class from flask admin to allow other attributes on a select option.
options_additional_values is added in form_args, it is a list of strings, each element is the name of the attribute in the model which will be added on the option
- class geonature.core.gn_permissions.admin.UserAjaxModelLoader[source]¶
Bases:
flask_admin.contrib.sqla.ajax.QueryAjaxModelLoader
- format(user)[source]¶
Instead of returning a list of tuple (id, label), we return a list of tuple (id, label, excluded_availabilities). The third element of each tuple is the list of type of permissions the user already have, so it is useless to add this permission to the user, and they will be not available in the front select. Two remarks: - We only consider active permissions of the user - If the type of the permission allows two or more filters, we do not exclude it as it makes sens to add several
permissions of the same type with differents set of filters.
- class geonature.core.gn_permissions.admin.AreaAjaxModelLoader[source]¶
Bases:
flask_admin.contrib.sqla.ajax.QueryAjaxModelLoader
- class geonature.core.gn_permissions.admin.TaxrefAjaxModelLoader[source]¶
Bases:
flask_admin.contrib.sqla.ajax.QueryAjaxModelLoader
- class geonature.core.gn_permissions.admin.ObjectAdmin[source]¶
Bases:
geonature.core.admin.utils.CruvedProtectedMixin
,flask_admin.contrib.sqla.ModelView
- class geonature.core.gn_permissions.admin.PermissionAdmin[source]¶
Bases:
geonature.core.admin.utils.CruvedProtectedMixin
,flask_admin.contrib.sqla.ModelView
- column_sortable_list = (('role', 'role.nom_complet'), ('module', 'module.module_code'), ('object',...[source]¶
- column_default_sort = [('role.nom_complet', False), ('module.module_code', False), ('object.code_object', False),...[source]¶
- class geonature.core.gn_permissions.admin.PermissionAvailableAdmin[source]¶
Bases:
geonature.core.admin.utils.CruvedProtectedMixin
,flask_admin.contrib.sqla.ModelView
- column_sortable_list = (('module', 'module.module_code'), ('object', 'object.code_object'), ('action', 'action.code_action'))[source]¶
- class geonature.core.gn_permissions.admin.RolePermAdmin[source]¶
Bases:
geonature.core.admin.utils.CruvedProtectedMixin
,flask_admin.contrib.sqla.ModelView
- class geonature.core.gn_permissions.admin.GroupPermAdmin[source]¶
Bases:
RolePermAdmin
- class geonature.core.gn_permissions.admin.UserPermAdmin[source]¶
Bases:
RolePermAdmin