Permissions Matrix
This matrix shows what each role can do across all major features of Hardhat Flow. Use this as a reference when configuring user accounts or answering questions about access.
Roles are enforced at the API level — not just the UI.
Even if a button is hidden, the server will reject unauthorized requests. The matrix reflects what the system actually allows, not just what the interface shows.
Legend
| Symbol |
Meaning |
| ✅ |
Full access — can perform this action |
| ❌ |
No access — blocked at API level |
| ⚠️ |
Conditional access — see footnotes |
Bid Management
| Action |
Platform Admin |
Owner |
Accounting |
Project Manager |
Supervisor |
Badge Worker |
| Create Bid |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Edit Bid |
✅ |
✅ |
❌ |
⚠️ ¹ |
❌ |
❌ |
| View Bid List |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| View Bid Detail |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Advance Bid to Awaiting PO |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Approve Bid |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Reject Bid |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Cancel Bid |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Generate Bid PDF |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Set Bid Priority Flag |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Set Bid Blocked Flag |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
Job Management
| Action |
Platform Admin |
Owner |
Accounting |
Project Manager |
Supervisor |
Badge Worker |
| View Job List |
✅ |
✅ |
✅ |
⚠️ ² |
⚠️ ³ |
⚠️ ³ |
| View Job Detail |
✅ |
✅ |
✅ |
⚠️ ² |
⚠️ ³ |
⚠️ ³ |
| Assign Supervisor |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Assign Badge Workers |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Update Job Status |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Cancel Job |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Set Job Priority Flag |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Set Job Blocked Flag |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
Field Updates & Photos
| Action |
Platform Admin |
Owner |
Accounting |
Project Manager |
Supervisor |
Badge Worker |
| Post Update (Note) |
✅ |
✅ |
❌ |
✅ |
⚠️ ³ |
⚠️ ³ |
| Upload Photos |
✅ |
✅ |
❌ |
✅ |
⚠️ ³ |
⚠️ ³ |
| View Updates |
✅ |
✅ |
✅ |
✅ |
⚠️ ³ |
⚠️ ³ |
| View Photos |
✅ |
✅ |
✅ |
✅ |
⚠️ ³ |
⚠️ ³ |
Invoices & Payments
| Action |
Platform Admin |
Owner |
Accounting |
Project Manager |
Supervisor |
Badge Worker |
| Create Invoice |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| Edit Invoice |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| View Invoice List |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| View Invoice Detail |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| Record Payment |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| Generate Invoice PDF |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
Activity Feed
| Action |
Platform Admin |
Owner |
Accounting |
Project Manager |
Supervisor |
Badge Worker |
| View Activity Feed |
✅ |
✅ |
✅ |
⚠️ ² |
⚠️ ³ |
⚠️ ³ |
User & Tenant Management
| Action |
Platform Admin |
Owner |
Accounting |
Project Manager |
Supervisor |
Badge Worker |
| Manage Company Users |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Invite New Users |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Deactivate Users |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
| Access Platform Admin Panel |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
| Manage Tenants |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
¹ Edit Bid — Project Manager:
Project Managers can edit bids they created. Owners can edit bids in any status. Project Managers cannot edit a bid that has been approved, rejected, or cancelled.
² Project Manager job access:
Project Managers see jobs where they are the assigned PM. They also have visibility into jobs managed by Supervisors they have assigned on other jobs. They do not see all jobs across the company.
³ Supervisor and Badge Worker job/update/photo access:
Supervisors and Badge Workers can only view, post updates to, and upload photos for jobs to which they are directly assigned. They have no access to any other jobs, updates, or photos.