Source code for ciodashboard.security

"""CioDashboard secutity functionalities."""

from __future__ import annotations

from pyramid.config import Configurator

from chrysalio.lib.config import update_acl
from .lib.i18n import _


PRINCIPALS_CIODASHBOARD = (
    ('dashboard', _('Dashboard management'), (
        ('viewer', _('View all dashboards'), (
            'dashboard-view',)),
        ('maintainer', _('Maintain all dashboards'), (
            'dashboard-view', 'dashboard-maintain')),
        ('editor', _('Edit or view any dashboard'), (
            'dashboard-edit', 'dashboard-view', 'dashboard-maintain')),
        ('creator', _('Create a new one or edit or view any dashboard'), (
            'dashboard-create', 'dashboard-edit', 'dashboard-view',
            'dashboard-maintain'))
    )),
)


# =============================================================================
[docs] def includeme(configurator: Configurator): """Function to include security. :type configurator: :class:`pyramid.config.Configurator` :param configurator: Object used to do configuration declaration within the application. """ update_acl(configurator, PRINCIPALS_CIODASHBOARD)