A permission matrix defines who can act on which records under which conditions. Start with sensitive actions and tenant boundaries, then choose role names that people understand.
Define ownership and scope
For a fictional expense platform, “manager” is ambiguous. Can a manager see every department, alter an approved claim or export receipts? Model organisation membership, team scope and record ownership explicitly. Enforce the decision on the server; hiding a button is not an access-control boundary.
Draft a small matrix
| Action | Employee | Team manager | Administrator |
|---|---|---|---|
| Read a claim | Own records | Assigned team | Explicitly permitted scope |
| Approve | No | Excluding own request | According to business policy |
| Export | Personal scope | Authorised team | Explicitly granted scope |
| Change roles | No | No | Yes, with an audit trail |
This example is not a universal policy. Some customers require stronger separation of duties, while others need delegated access across teams. Capture those requirements before promising a role model.
Test denied access, not only successful flows
Create two organisations and attempt reads, edits and exports using another tenant's object identifier. Include attachments, search and background jobs. Recheck old sessions after removing a role so revoked privileges do not remain effective indefinitely.
Are two roles enough for a first release?
They can be, when their limits are clear. Add a permission to support an observed workflow rather than an impressive settings screen. Every new capability should have an owner, a defined data scope and a negative test showing that an unauthorised user cannot exercise it.
A contractor working for several customers
Test a consultant who belongs to multiple customer organisations. Removing access to one customer must not delete their personal identity or preserve that customer's files in another workspace. This scenario is useful for professional-services SaaS sold internationally.
Sources and further reading
From this guide to your project
Development ↗
A SaaS is a system: data, users, permissions, billing and operations. Its architecture should support the business model.
Tell us about your ideaExamples are educational and do not describe client results. Content prepared with AI assistance; see our editorial policy. Our method ↗