031eb2ddd7
chore(onboarding): update questionnaire PDF, remove client header/sign-off, and rebrand to Statlab
2026-09-14 09:32:16 +08:00
20f14c3719
feat(payroll,leaves): enforce branch scoping for payroll/payslips/salaries, restrict employee role to own leaves, and set payslip header to SCX Software
2026-09-10 15:15:57 +08:00
ef1aa7cf24
feat(biometrics): enforce strict branch scoping on biometric attendance and sync
...
- Restrict biometric attendances query and grouped records strictly to employees of assigned branch
- Scope bulk sync (syncAll) to only sync biometric records for employees within the user's branch
- Guard individual sync and custom sync against processing employees from foreign branches
- Tighten attendance records query to strictly filter by employee assigned branch
- Add feature test verifying biometric attendance isolation and permission guards
2026-09-10 11:32:48 +08:00
33f776c6b2
feat(auth): enforce strict branch scoping for overtime requests, attendance regularizations, and 13th month pay
...
- Restrict overtime applications query, submission, approval, and attendance details to assigned branch
- Restrict attendance regularization listing, statistics, and dropdowns to assigned branch
- Restrict 13th month pay batch generation, historical runs, entry updates, approvals, and CSV exports to assigned branch
- Add feature tests in BranchScopedAccessTest for overtime and 13th month isolation
2026-09-10 11:22:15 +08:00
7f467600e9
feat(auth): enforce strict branch scoping for branch-assigned HR and staff accounts
...
- Introduce authBranchId() helper to resolve assigned branch while allowing company admin/superadmin cross-branch oversight
- Restrict branch, department, and employee listings and mutations to assigned branch for branch-scoped accounts
- Scope attendance records, biometric logs, leave applications/balances, payslips, shifts, and announcements by assigned branch
- Add comprehensive automated feature tests in BranchScopedAccessTest to prevent branch cross-visibility regression
2026-09-10 11:14:24 +08:00