Skip to content

Permission modules

Access prerequisites

  • Permission (module): manageRoles (same as the Users group; the /users/modules route has no dedicated menu item)
  • Licence/Feature: None
  • Menu container: GENERAL → Users group (internal route, no dedicated menu item — accessed via internal link)

What it is / when to use

Catalogue of the permission modules of the dynamic permission system — the "DB" half of the dual-permission model. Each row is a module (e.g. viewUsers, manageToken, sendBalance) with a readable description. This catalogue feeds the "Available/Assigned" boxes on the Roles screen and the *appHasPermission gating in the UI. Use it mainly to review existing modules and adjust their descriptions.

The route is /users/modules (ModulesListComponent); it does not appear as an item in the side menu — it is an internal configuration of the permissions system.

Pre-conditions

  • Permission: manageRoles (same as the Users group). Dual permission: CPM enum + dynamic module.
  • Licence/Feature: none.
  • Dependencies: the modules here must have a counterpart in the static enum E_PERMISSION_MODULES (backend + frontend copy) for the @AuthenticationRequired(...) decorator to validate the route. A module only in the catalogue (without an enum entry) enables the *ngIf/button in the UI, but the route is denied on the backend; a module only in the enum (without a catalogue entry) never appears in the UI.

Step by step

  1. Access the internal route /users/modules (from internal links in the Users group).
  2. Use the search to locate a module by name.
  3. Click the icon to view or edit a module.
  4. Adjust the description and save.

Fields (module dialog)

FieldWhat it isRequired?Effect on system/backend
Module name (module)The technical key of the module (e.g. manageToken)YesRead-only in the dialog. It is the key matched with the CPM enum and used by the UI gating. Not editable here to avoid breaking the link with the enum.
DescriptionReadable text explaining the moduleYesSaved via updateUsers (CPM). Cannot be left empty (Save button disabled). It is the label displayed in the Roles lists.

Actions and modals

  • View: opens the module in read mode, with a button to switch to edit.
  • Edit: allows changing only the description and saving.

Business rules / cautions

Attention

  • Permission is dual and this catalogue is only half of it. Creating/seeding a new production module is normally done via Liquibase in DataInitializerService (seed in the CPM) together with adding the key to the E_PERMISSION_MODULES enum (backend + frontend copy). Editing the description here does not create a permission effect on its own.
  • The name (key) is not editable via the dialog by design: renaming it would break the match with the enum and the UI gating. To introduce a new admin action, add the key to the enum, seed the module in the DB and associate it with a Role.
  • Without the module registered here, the corresponding button/menu never appears even if the enum is correct — because the UI uses the dynamic flag.