Skip to content

RBAC Permission Matrix — FitZalo V2 ​

Governance: NAMING_CONVENTIONS.md §4
Last updated: 2026-02-28 — Synced with PermissionString enum (57 permissions)

Standard Roles ​

Role CodeScopeDescription
SYSTEM_ADMINGlobalPlatform owner. Full access to every permission.
OWNERTenantFull control over a single tenant (excl. system-level).
ADMINTenantOperational manager. View + selective MANAGE for daily ops.
MEMBERTenantDay-to-day staff. View access + basic ops (order, inventory, inbox).
CUSTOMERTenantEnd-user. View-only access. Default role on signup.

Permission Matrix ​

Legend: ✅ = granted, — = denied

ModulePermissionSYS_ADMINOWNERADMINMEMBERCUSTOMER
IAMTENANT_VIEW✅✅✅✅✅
TENANT_MANAGE✅✅———
TENANT_ADMIN✅————
MEMBER_VIEW✅✅✅✅✅
MEMBER_MANAGE✅✅———
ROLE_VIEW✅✅✅✅✅
ROLE_MANAGE✅✅———
AUDIT_VIEW✅✅✅✅✅
NOTIFYNOTIFY_VIEW✅✅✅✅✅
NOTIFY_MANAGE✅✅———
COMMS (ESN)COMMS_VIEW✅✅✅✅✅
COMMS_MANAGE✅✅———
CATALOGCAT_VIEW✅✅✅✅✅
CAT_MANAGE✅✅✅——
ORDERORDER_VIEW✅✅✅✅✅
ORDER_MANAGE✅✅✅✅—
VOUCHERVOUCHER_VIEW✅✅✅✅✅
VOUCHER_MANAGE✅✅✅——
INVENTORYINV_VIEW✅✅✅✅✅
INV_MANAGE✅✅✅✅—
PROCUREMENTPROC_VIEW✅✅✅✅✅
PROC_MANAGE✅✅———
PRODUCTIONPROD_VIEW✅✅✅✅✅
PROD_MANAGE✅✅———
SHIPPINGSHIP_VIEW✅✅✅✅✅
SHIP_MANAGE✅✅———
CMSCMS_VIEW✅✅✅✅✅
CMS_MANAGE✅✅✅——
CMS_PUBLISH✅✅✅——
PARTNER/CRMCRM_VIEW✅✅✅✅✅
CRM_MANAGE✅✅✅——
INBOXINBOX_VIEW✅✅✅✅✅
INBOX_REPLY✅✅✅✅—
INBOX_MANAGE✅✅———
AIAI_VIEW✅✅✅✅✅
AI_MANAGE✅✅———
ZALOZALO_VIEW✅✅✅✅✅
ZALO_MANAGE✅✅———
PLUGINPLUGIN_VIEW✅✅✅✅✅
PLUGIN_MANAGE✅✅———
BILLINGBILLING_VIEW✅✅✅✅✅
BILLING_MANAGE✅✅———
FILEFILE_VIEW✅✅✅✅✅
FILE_MANAGE✅✅———
FILE_UPLOAD✅✅✅✅—
FILE_EDIT✅✅✅——
FILE_DELETE✅✅✅——
FILE_RESTORE✅✅✅——
FILE_PROCESS✅✅✅——
FILE_USAGE_VIEW✅✅✅✅✅
FILE_POLICY_VIEW✅✅✅✅✅
FILE_POLICY_MANAGE✅✅———
ADMINADMIN_FULL✅————
MDMMDM_MANAGE✅✅———
ENABLEMENTBUSINESSTYPE_MANAGE✅✅———
TENANT_ENABLEMENT_MANAGE✅✅———
TENANT_ENABLEMENT_VIEW✅✅✅✅✅

Summary ​

RoleTotal PermissionsLogic
SYSTEM_ADMIN57All permissions
OWNER55All except TENANT_ADMIN, ADMIN_FULL
ADMIN37View + selective MANAGE (CAT, ORDER, INV, CRM, CMS, VOUCHER)
MEMBER27All _VIEW + INBOX_REPLY + ORDER_MANAGE + INV_MANAGE
CUSTOMER24All *_VIEW permissions

Notes ​

  • SYS_CAT_VIEW was previously listed but does not exist in the codebase. Removed.
  • Loyalty / Customer-Loyalty controllers reuse CRM_VIEW / CRM_MANAGE.
  • Balance controller reuses BILLING_VIEW / BILLING_MANAGE.
  • File permissions are granular (10 perms) to support fine-grained file operations.
  • ADMIN gets VOUCHER_MANAGE (added 2026-02-28) for daily operations.
  • Permission enforcement: @Permissions() decorator + PermissionsGuard + TenantGuard.

Note: SYSTEM_ADMIN has implicit access to all regular tenant permissions but special SYS_* permissions for global operations.

RBAC Implementation Rule ​

The backend MUST enforce permissions via a declarative guard:

typescript
@Permissions('ORDER_MANAGE')
@Patch(':id/status')
async updateStatus(...) { ... }
  • Multi-tenancy isolation (tenantId check) happens at TenantGuard.
  • RBAC check happens at PermissionsGuard by verifying the user's roles attached to their Membership for the current tenantId.

FitZalo Platform Documentation