Source code for ciowarehouse2.security

"""CioWarehouse2 secutity functionalities."""

from __future__ import annotations

from pyramid.config import Configurator

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


PRINCIPALS_CIOWAREHOUSE2 = (  # yapf: disable
    ('ciowarehouse2', _('CioWarehouse2 module management'), (
        ('viewer', _('View CioWarehouse2 configuration'), (
            'ciowarehouse2-view',)),
        ('editor', _('Edit or view CioWarehouse2 configuration'), (
            'ciowarehouse2-edit', 'ciowarehouse2-view'))
    )),
    ('warehouse', _('Warehouse management'), (
        ('viewer', _('View all warehouses'), (
            'warehouse-view',)),
        ('editor', _('Edit or view any warehouse'), (
            'warehouse-edit', 'warehouse-view')),
        ('creator', _('Create a new one or edit or view any warehouse'), (
            'warehouse-create', 'warehouse-edit', 'warehouse-view')),
        ('configurator', _('Configure all warehouses without browsing them'), (
            'warehouse-configure', 'warehouse-edit', 'warehouse-view'))
    )),
    ('seed', _('Seed management'), (
        ('viewer', _('View all seeds'), ('seed-view',)),
        ('editor', _('Edit or view any seed'), ('seed-edit', 'seed-view')),
        ('creator', _('Create a new one or edit or view any seed'), (
            'seed-create', 'seed-edit', 'seed-view'))
    ))
)


# =============================================================================
[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_CIOWAREHOUSE2)