Roles and permissions — who can do what
Purpose
CS Logbook gives every clinic member an access role that controls which actions they can perform. This separation of duties is a DEA record-keeping best practice: the people who record day-to-day transactions are not necessarily the people who manage licenses, staff, clinic settings, or who conduct formal audits. Access roles let a clinic match its real-world chain of responsibility.
Access role is separate from clinic position (veterinarian, technician, receptionist, …), which is
a job title that drives clinical workflow — see ADR-014
for the rationale. A prescribing veterinarian can be a staff access role; a practice manager can be
an admin. The two are orthogonal.
CS Logbook still never blocks clinical care for a paperwork issue (ADR-006). Access roles are a different mechanism: they are a security control on who may perform management, compliance, and audit actions — not a soft compliance warning. When your role doesn't permit an action, the control is hidden rather than shown with an amber warning.
Your role is per-clinic
If you belong to more than one clinic, your access role is set separately for each one — there is no single, account-wide role. You can be the Owner of your own practice and a Viewer at a clinic you consult for, at the same time. Each clinic evaluates only the role you hold there: acting in one clinic never grants or restricts anything in another, and a clinic can never see or change the role you hold elsewhere. When you switch clinics in the workspace switcher, the controls you see change to match your role in the clinic you are currently viewing.
When to use it
- Inviting a new clinic member — pick the access role that matches what they should be allowed to
do, not just their job title. A receptionist who only needs to look things up should be a
viewer. - Tightening separation of duties — if a staff member should record transactions but not edit
clinic licenses or start a DEA audit,
staffis the correct role (notadmin). - Troubleshooting "I don't see the button" — if a clinic member reports a missing Create, Start, or Edit control, check their access role against the matrix below. The control is hidden because their role doesn't permit that action.
The five access roles
| Role | Intended for | In one line |
|---|---|---|
| Owner | The clinic principal / registrant | Full control, including billing, ownership transfer, and data export |
| Admin | Practice managers, lead administrators | Everything except owner-only billing/ownership/export |
| Manager | Shift / department leads | Manage compliance records and conduct audits, but can't finalize-lock them |
| Staff | Veterinarians, technicians recording day-to-day work | Record transactions and manage clients/patients; no compliance/audit management |
| Viewer | Read-only reviewers, auditors, observers | See everything in the account; change nothing |
Field reference — capability matrix
This is the capability model the application enforces. ✅ = allowed, ❌ = hidden / denied.
| Capability | Owner | Admin | Manager | Staff | Viewer |
|---|---|---|---|---|---|
| View records across the account | ✅ | ✅ | ✅ | ✅ | ✅ |
| Record transactions (dispense, use, waste) & receive containers | ✅ | ✅ | ✅ | ✅ | ❌ |
| Add / edit clients | ✅ | ✅ | ✅ | ✅ | ❌ |
| Add / edit patients | ✅ | ✅ | ✅ | ✅ | ❌ |
| Manage substances (definitions, numbering overrides) | ✅ | ✅ | ✅ | ❌ | ❌ |
| Manage suppliers & invoices | ✅ | ✅ | ✅ | ❌ | ❌ |
| Manage clinic settings (profile, numbering, sequences) | ✅ | ✅ | ✅ | ❌ | ❌ |
| Manage clinic staff (add / edit / deactivate) | ✅ | ✅ | ✅ | ❌ | ❌ |
| Manage facility licenses (DEA / state permits) | ✅ | ✅ | ✅ | ❌ | ❌ |
| Conduct audits — biennial inventory, spot-check, DEA prep, theft/loss report | ✅ | ✅ | ✅ | ❌ | ❌ |
| Finalize / lock an audit | ✅ | ✅ | ❌ | ❌ | ❌ |
| Manage members (invite, change roles, remove) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Billing, ownership transfer, data export | ✅ | ❌ | ❌ | ❌ | ❌ |
Notes:
- Your personal licenses are always yours. Every user manages their own DEA/state practitioner license on their personal account regardless of clinic access role — the matrix row above is the facility (clinic-owned) license. See Licenses.
- Conducting vs finalizing an audit are different rights. A
managercan start and run an audit but only anowner/admincan finalize it (irreversibly lock it). This is intentional separation of duties. - Theft/loss reporting (DEA Form 106) is treated as an audit-conduct action (admin tier). DEA requires reporting a theft or significant loss within one business day — ensure at least one owner/admin/manager is available to file it.
Edge cases
- Everyone can still read. No access role removes read access to the clinic's records — a
viewersees the same data, just without write controls. This keeps audit/review workflows unblocked. - Demoting yourself. An owner who lowers their own role (or the last owner leaving) can lock the clinic out of owner-only functions. Transfer ownership first. See Members.
- A prescriber who is a
viewer. Clinic position (prescribing veterinarian) and access role are independent — but aviewercannot record the transactions a prescriber needs to. If a prescriber must record dispenses, give them at leaststaff.
Common mistakes
- Granting
admin"to be safe." If a clinic member only records transactions and manages clients/patients,staffis correct. Over-granting defeats separation of duties. - Expecting a
staffmember to start a DEA audit. Audit-conduct (biennial, spot-check, DEA prep, theft/loss) is admin-tier. Astaffmember won't see the Start control and the action is denied if attempted directly. - Confusing access role with clinic position. Setting someone's clinic position to "practice
manager" does not give them the
manageraccess role — they're separate fields.
Related
- Members — invite clinic members and assign access roles
- Licenses — personal vs. facility license scope
- Clinic profile — the settings managed at admin tier
- Glossary § Access role vs. clinic position
- ADR-014 — access_role + clinic_position split
- ADR-006 — compliance enforcement philosophy