The Permission System Explained

Evrykit uses a role-based permission system where every action in the application is controlled by a named permission. Access is determined by evaluating the user's roles and any individual overrides.

Permission States

Every permission can be in one of three states:

State Meaning
Default Inherits whatever the role grants (usually deny for sensitive actions)
Grant Explicitly allowed, regardless of role settings
Deny Explicitly blocked, even if a role grants the permission

Priority: Deny > Grant > Default (role grant)

Roles

A role is a named set of permissions (e.g. Cashier, Sales Rep, Accountant). Users can be assigned multiple roles โ€” permissions are merged, with Deny always winning.

Creating a Role

Go to Administration โ†’ Roles โ†’ New:

  1. Name the role
  2. For each permission, choose Grant, Deny, or Default
  3. Save

Assigning Roles to Users

Open the user record and assign one or more roles. Changes take effect on the user's next page load.

Permission Hierarchy

Granular Permission Settings

Permissions follow a parent โ†’ child tree:

Pages.Sales                    โ† Parent: can view Sales module
โ”œโ”€โ”€ Pages.Sales.Orders         โ† Can access Orders section
โ”‚   โ”œโ”€โ”€ Pages.Sales.Orders.View    โ† Can list/view orders
โ”‚   โ”œโ”€โ”€ Pages.Sales.Orders.Create  โ† Can create new orders
โ”‚   โ””โ”€โ”€ Pages.Sales.Orders.Confirm โ† Can confirm orders

Granting a parent permission implicitly grants the parent-level check. Child permissions are checked separately for specific actions.

Troubleshooting Access

If a user cannot access a page or button:

  1. Check the user's assigned roles
  2. Verify the role grants the relevant permission
  3. Check for a Deny override on the user or another role
  4. Check the permission hierarchy โ€” the parent permission may also be needed

Related

โ† Previous
Managing Users & Roles
Next โ†’
Document Numbering Series