Attendance Roles and Permissions
Attendance access is permission-driven. The application does not hard-code fixed business roles such as “HR” or “Manager” for every action. Instead, roles or groups are expected to receive permissions.
Visibility tiers
Section titled “Visibility tiers”| Tier | Verified behavior |
|---|---|
| Own records | Users without team/all attendance access see their own attendance records. |
| Team records | Users with attendance.can_view_team_attendance can see themselves and recursive subordinates. |
| All records | Superusers or users with attendance.can_view_all_attendance can see all active accounts. |
Leave requests and balances use similar own/subordinate/all access patterns through their own permissions.
Action permissions
Section titled “Action permissions”| Action | Permission |
|---|---|
| Clock In / Clock Out | attendance.can_checkin_checkout |
| Break In / Break Out | attendance.can_break_in_out |
| View team attendance | attendance.can_view_team_attendance |
| View all attendance | attendance.can_view_all_attendance |
| Add Attendance Record | attendance.add_attendancerecord |
| Quick Edit | attendance.change_attendancerecord |
| Delete Record | attendance.delete_attendancerecord |
| View all corrections | attendance.can_view_all_corrections |
| Approve corrections | attendance.can_approve_corrections |
| Reject corrections | attendance.can_reject_corrections |
| View leave requests | attendance.view_leaverequest |
| View all leave requests | attendance.view_all_leaverequest |
| View subordinate leave requests | attendance.view_subordinate_leaverequest |
| Directly approve leave requests | attendance.approve_leaverequest |
| Directly reject leave requests | attendance.reject_leaverequest |
| Approve approval-chain step | attendance.approve_leave_step |
| Reject approval-chain step | attendance.reject_leave_step |
| View all leave balances | attendance.view_all_leavebalances |
| View subordinate leave balances | attendance.view_subordinate_leavebalances |
| Encash leave balance | attendance.cash_leavebalance |
| View all leave records | attendance.view_all_leaverecords |
| View subordinate leave records | attendance.view_subordinate_leaverecords |
| View internal approval comments | attendance.view_internal_comment |
| Add internal approval comments | attendance.add_internal_comment |
Practical role matrix
Section titled “Practical role matrix”| Capability | Employee | Team lead / manager | HR / admin |
|---|---|---|---|
| Clock self in/out | Yes, with permission | Yes, with permission | Yes, with permission |
| Take self breaks | Yes, with permission | Yes, with permission | Yes, with permission |
| View own records | Yes | Yes | Yes |
| View subordinate records | Needs team permission | Yes, when assigned | Yes, if assigned |
| View all records | No by default | No by default | Yes, if assigned |
| Add/edit/delete attendance records | No by default | Permission-dependent | Permission-dependent |
| Submit corrections | Own records only | Own records only | Own records only unless acting through record edit/review permissions |
| Review corrections | No by default | Permission-dependent | Permission-dependent |
| Submit leave | Yes, with request permission | Yes, with request permission | Yes, with request permission |
| Approve leave | No by default | Permission or approval-chain dependent | Permission or approval-chain dependent |