- Can you do this kind of thing at all? — a permission key such as
leave:approve. - Can you do it to this person? — a scope check: yourself, your direct reports, or anyone in the organization.
leave:approve does not let you approve everybody’s leave. It lets you approve leave, for the people in your scope. Both questions must pass.
The four presets
OnTime ships with four roles. They are ordinary roles built from the same permission catalog as any role you create — but they are read-only, so the baseline can’t drift.Employee
11 permissions. Own profile, own punches, own leave, own pay, raise regularizations and overtime requests. Sees nobody else.
Manager
22 permissions. Everything an Employee has, plus their team’s attendance, and approval rights over leave, regularizations and overtime — for direct reports only.
HR
25 permissions. Organization-wide people, leave and payroll authority, compliance and reports, and the
hr:approve key that clears the direct-manager restriction. Notably not the roles editor.Admin
All 53 permissions. Organization configuration, roles, devices, integrations, API keys and the audit log, on top of everything above.
HR deliberately cannot edit roles.
role:write lets its holder edit any role, including their own — so granting it to HR would be a path to full Admin. Role administration belongs to Admin.Scope: whose records
Permission keys grant capability. Scope decides whose records that capability reaches, and there are exactly three levels.self — your own record
self — your own record
Acting on yourself. Enabled per surface: you can read your own file and file your own requests, but you can never approve your own request, however senior you are.
team-direct — your direct reports
team-direct — your direct reports
The people whose manager is you. Not their reports in turn — direct links only.This is what a manager’s approvals queue contains, and it is always overridable by a holder of
hr:approve.org — everyone
org — everyone
No narrowing at all. This is what
hr:approve grants, and it is what administrative keys like attendance:write or audit:read imply. It is always a deliberate choice, never an accident of the org chart.The permission catalog
53 keys, grouped as they appear in the roles editor. ✅ means the preset includes the key.Self & profile
People
Org structure
Roles & access
Attendance
Leave
Payroll & pay
Compliance
Reports
Shifts & rosters
Regularization & overtime
Documents & devices
Integrations
Platform
Reading the matrix
A few patterns worth noticing:- Managers see their team; HR sees the organization. Manager holds
team:readand the approve keys but nothr:approve, so its authority stops at direct reports. HR holdshr:approveand therefore reaches everyone, but holds neitherteam:readnor the org-structure keys. - Overtime approval is a manager job, not an HR one.
overtime:approvesits with Manager and Admin. HR approves leave and regularizations, not overtime. - Swaps split the other way. Managers request swaps (
swap:write); HR approves them (swap:approve). - Everyone can punch.
attendance:punchis in all four presets — administrators are employees too.attendance:read(seeing everyone else’s) is Admin-only.
Building your own roles
An administrator can create additional roles from the same checklist. Two rules apply:- The four presets cannot be edited or deleted. Opening one shows it read-only.
- A role in use cannot be deleted. Reassign its holders first.