Understand the four built-in staff roles and all 30 permission slugs across 11 areas in Opterius Commerce.
Using Permissions in Code
Role Preset Defaults
Roles & Permissions#
Commerce uses a role + individual permission system. Each staff account has a role (which sets a sensible default) and an optional custom permission override per slot.
Four Built-in Roles#
| Role |
Description |
super_admin |
Unrestricted access to everything, including system settings and staff management |
admin |
Full access to all business areas; cannot manage staff or change system-level settings |
support |
Can view clients and manage tickets; read-only access to invoices and services |
billing |
Can manage invoices, payments, and client profiles; read-only access to support tickets |
[!IMPORTANT]
Roles are presets, not hard rules. After selecting a role, you can toggle individual permissions on or off. The super_admin role is the only one that cannot be restricted — it always has all permissions.
30 Permission Slugs by Area#
Clients (4)#
| Slug |
Description |
clients.view |
View client list and profiles |
clients.create |
Create new client accounts |
clients.edit |
Edit client profiles and billing details |
clients.impersonate |
Log in as a client (see Login as Client) |
Invoices (3)#
| Slug |
Description |
invoices.view |
View invoices and payment history |
invoices.create |
Create and issue invoices manually |
invoices.edit |
Edit invoice line items and status |
Orders (2)#
| Slug |
Description |
orders.view |
View order queue |
orders.manage |
Approve, reject, and cancel orders |
Services (3)#
| Slug |
Description |
services.view |
View active and cancelled services |
services.manage |
Suspend, unsuspend, terminate services |
services.provision |
Trigger manual provisioning |
Domains (2)#
| Slug |
Description |
domains.view |
View registered domains |
domains.manage |
Renew, transfer, update nameservers |
Tickets (3)#
| Slug |
Description |
tickets.view |
View ticket queue |
tickets.reply |
Reply to and close tickets |
tickets.assign |
Assign tickets to staff members |
Products (2)#
| Slug |
Description |
products.view |
View product catalogue |
products.manage |
Create and edit products, addons, pricing |
Servers (2)#
| Slug |
Description |
servers.view |
View server and Panel connection list |
servers.manage |
Add, edit, and test Panel connections |
Reports (1)#
| Slug |
Description |
reports.view |
View all revenue, tax, and churn reports |
Settings (2)#
| Slug |
Description |
settings.view |
View system settings pages |
settings.edit |
Save changes to system settings |
Staff (4)#
| Slug |
Description |
staff.view |
View staff list |
staff.create |
Create new staff accounts |
staff.edit |
Edit existing staff accounts |
staff.delete |
Delete staff accounts |
Using Permissions in Code#
Blade directive#
@staffcan('invoices.create')
<a href="/admin/invoices/create">New Invoice</a>
@endstaffcan
Middleware (routes)#
Route::middleware('staff.can:services.manage')->group(function () {
// routes only accessible with services.manage permission
});
Role Preset Defaults#
| Permission area |
super_admin |
admin |
support |
billing |
| Clients |
All |
All |
view only |
view + edit |
| Invoices |
All |
All |
view only |
All |
| Orders |
All |
All |
view only |
view only |
| Services |
All |
All |
view only |
view only |
| Tickets |
All |
All |
All |
view only |
| Staff |
All |
None |
None |
None |
| Settings |
All |
view only |
None |
None |