Permissions
Role-based access and three-layer authorization.
Tenelix uses role-based access control with three-layer authorization. Every action is checked at three layers before it touches data.
Roles
| Role | Description |
|---|---|
super_admin | Platform administrator |
clinic_admin | Clinic owner / manager |
doctor | Physician / specialist |
nurse | Nursing staff |
receptionist | Front desk staff |
billing_clerk | Billing department |
read_only | View-only access |
Custom roles can be created with bespoke permission matrices via the Roles & Permissions UI.
Three-layer authorization
Sensitive operations are checked at three layers:
- Route ability — the route is gated at the framework level
- FormRequest::authorize() — the request validates the operation is allowed
- AuthorizationService::authorize() — controllers / actions re-check at the data layer
This means a successful authorization requires all three layers to agree. A bypassed route does not grant data access; a forged form request does not grant data access. The data layer is the final word.
Permission modules
There are 14 permission modules, each containing fine-grained
abilities. Examples: patients.view, patients.create,
appointments.checkin, billing.invoice.issue,
inventory.movement.create. Roles map to abilities via a permission
matrix configurable per tenant.