Resources

Roles & Access Overview

How Optserv controls access: four staff roles (Admin, HR, Manager, Employee), workspace gating, and the separate student model.

Optserv uses role-based access control (RBAC) to determine what each person can see and do. There are four staff roles, each with progressively narrower scope.

The four staff roles

RoleWho it's forScope
AdminFounders, ops leadsFull company access — settings, billing, all workspaces, all data
HRHR managersCompany-wide people operations — no billing access
ManagerTeam leadsDepartment-scoped — approvals and visibility for their team only
EmployeeEveryone elseSelf-service — their own data, requests, and personal info

Students (OptClass) are not a staff role. They operate in a separate model — see OptClass Student Access.

How roles are enforced

Access control is applied at multiple layers — this is defense in depth, not just UI gating:

  1. UI gating — navigation items and features are hidden based on role
  2. Route checks — server-side validation on every page load
  3. Row-Level Security (RLS) — database queries are automatically scoped to what the user is allowed to see
  4. Edge Functions / RPC — write operations enforce role checks at the API layer

Roles are not just cosmetic. A Manager cannot query HR-level data even by manipulating the URL or API calls directly.

Access by module

ModuleAdminHRManagerEmployee
Company settings✅ Full
People (view all)Team onlySelf only
Attendance (view all)Team onlySelf only
Leave (approve)Team only
Overtime (approve)Team only
Recruitment
Account SharingBy shareBy share
School (staff view)
Billing

Key pages in this section