Permissions and Roles
The HRM module uses a granular permission system to control who can view, create, edit, delete, and perform specific actions on each type of record. Permissions are assigned to roles, and each user is assigned one or more roles. This lets you tailor access precisely — for example, allowing an HR manager to approve leave and process payroll, while limiting employees to viewing their own records and submitting requests.
How Permissions Work
Permissions in the HRM module are organized into two categories:
- CRUD Permissions — Control basic operations (create, view, edit, delete) on each resource type (Employees, Leave Requests, Timesheets, etc.).
- Action Permissions — Control specific workflow actions like approving leave, processing payroll, or finalizing payslips.
Permissions are assigned to roles through the Settings > Permissions page. Each role gets a combination of permissions that define what users in that role can do.
Permission Checks on Actions
Many workflow actions in the HRM module require two conditions to be met:
- The user must have the correct permission (e.g., "Approve Leave Requests").
- The record must be in the correct status (e.g., the leave request must be in Pending status).
If either condition is not met, the action button will not appear. For example, even if you have the "Approve Leave Requests" permission, the Approve button will not show on a leave request that has already been approved.
CRUD Permissions (Create, View, Edit, Delete)
Each HRM resource automatically receives a set of CRUD permissions. These follow a consistent pattern across all resources.
View Permissions
| Permission | What It Allows |
|---|---|
| View All | View every record of this type, regardless of who created it |
| View Own | View only records created by the logged-in user |
| View Team | View records created by members of teams you manage |
Create Permissions
| Permission | What It Allows |
|---|---|
| Create | Create new records of this type |
Edit Permissions
| Permission | What It Allows |
|---|---|
| Edit All | Edit any record of this type |
| Edit Own | Edit only records created by the logged-in user |
| Edit Team | Edit records created by members of teams you manage |
Delete Permissions
| Permission | What It Allows |
|---|---|
| Delete Any | Delete any record of this type |
| Delete Own | Delete only records created by the logged-in user |
| Delete Team | Delete records created by members of teams you manage |
| Bulk Delete | Delete multiple records at once using the bulk action |
Resources That Have CRUD Permissions
CRUD permissions are generated for each of the following resources:
- Employees
- Leave Requests
- Leave Balances
- Leave Types
- Attendance
- Timesheets
- Payroll Runs
- Payroll Entries
- Payroll Components
- Payslips
- Salary Structures
The Own permission variant checks who created the record (the created_by field). For employees logged into the Employee Portal, "own" refers to records associated with their employee profile — not just records they personally created.