"""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)