Documentation
Getting Started
Data Grid
Modeling
Business Rules
Approvals
Administration
Integration & API
Installation
Migrating from MDS
Architecture

Roles & Permissions

Permissions in Primentra are always granted through roles. There are no per-user permissions. To know what a user can do, look at their roles.

Roles live in Settings → Access Management → Roles.

The permission matrix for a role, with CRUD toggles per model, entity and attribute
The permission matrix for a role, with CRUD toggles per model, entity and attribute(click to enlarge)

Create a role

  1. Click New role.
  2. On the Settings tab, enter a Role name and an optional Description.
  3. Choose a Role type if the role needs one (see below).
  4. Click Create role.
  5. Open the Members tab and tick the users who belong to the role.
  6. Click Save.
  7. Open the Permissions tab and grant access.
The Permissions tab stays disabled until the role is saved. It is labeled *save first* until then.

Role type

Two checkboxes on the Settings tab change what the role means.

  • Administrator — members get full access to everything and bypass every permission check. The permission matrix is ignored for them.
  • Approver — members can approve changes. Only users in an Approver role can be assigned as approvers on an entity.

An Administrator role shows an amber banner on the Permissions tab: *Administrator role — permissions do not apply*.

Permission scopes

Permissions cascade through three levels.

ScopeEffect
ModelSets the default for every entity in the model
EntityOverrides the model default for one entity
AttributeOverrides entity and model for one field, Read or Write only

A badge with means the permission is inherited, not set directly. Click the × button next to the CRUD toggles to clear an override and fall back to inherited.

CRUD permissions

At model and entity scope, five toggles control access.

ToggleGrants
CCreate — add rows, import data, paste rows
RRead — view data in the grid and export it
UUpdate — edit cell values, bulk edit, fill handle
DDelete — remove rows, purge entity data
ModModerator — full CRUD plus entity and model configuration

Three rules apply automatically:

  • Turning on C, U, or D also turns on R. You cannot write what you cannot see.
  • Turning on Mod turns on all four CRUD toggles.
  • Turning off R turns off C, U, and D.

D does not need U, and C does not need U. The four operations are otherwise independent.

Effective combinations

CombinationWhat the user can doTypical use
NoneNo access — the entity is invisibleRestricted data
RView and export onlyViewers, auditors, reporting
CRView and add rowsData entry that cannot correct itself
RUView and edit existing rowsMaintenance teams
RDView and delete rowsCleanup roles
CRUView, add, and editSafe default for editors
CRDView, add, and delete, but not editRare
RUDView, edit, and deleteMaintain and clean up, no new rows
CRUDFull data accessPower users, team leads
ModFull CRUD plus configurationData stewards

Attribute permissions

Attributes use two levels only: Read and Write. Leave the dropdown on *Inherit* to follow the entity.

The entity permission decides which operations are available. The attribute permission decides which fields are editable during those operations. Both must allow it.

Attribute levelEntity has REntity has C or U
ReadVisible, not editableVisible, not editable
WriteVisible, not editableVisible and editable

Examples:

  • Entity CRU, attribute Salary = Read — the user edits rows, but the Salary field stays locked.
  • Entity R, attribute Name = Write — view only. Write has no effect, because the entity grants no Update.

Moderator forces every attribute to Write

When an entity or model has Moderator, all its attributes are forced to Write ↑ and their dropdowns are disabled. Saving removes any leftover attribute overrides underneath. Remove the Moderator flag and the dropdowns become editable again.

Domain fields

A domain attribute follows the same Read and Write rules. Users do not need permission on the referenced entity to use its values in a dropdown — permission on that entity only controls whether they can browse it directly.

Multiple roles

When a user belongs to several roles, the most permissive combination wins. Read plus Create-Read-Update gives Create-Read-Update. This applies at model, entity, and attribute scope. One role can never block another.

Server-side enforcement

Every permission is checked on the server. A request that bypasses the interface is rejected with HTTP 403.

Audit trail

Each changed permission is written to the audit log as a separate entry with Action = permission_change. Saving a role can therefore produce many entries at once. The Details field records exactly what changed:

{
  "scope": "entity",
  "modelId": 3,
  "modelName": "Customer",
  "entityId": 12,
  "entityName": "Branch",
  "roleId": 2,
  "roleName": "DataSteward",
  "changes": {
    "canRead": { "from": false, "to": true },
    "canUpdate": { "from": true, "to": false }
  }
}

For attribute scope, changes holds level instead of the CRUD flags. The permission update and the audit entry succeed or fail together.

Ready to get started?

Start managing your master data with Primentra today.

View Pricing
Roles & Permissions | Users, Roles & Security | Docs | Primentra