Commit Graph

7 Commits

Author SHA1 Message Date
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
8f078c1f33 Implement HR Branch isolation and Shift isolation 2026-07-14 11:41:04 +08:00
d40c5662d3 feat: add branch isolation for managers and zkteco biometric tracking 2026-07-02 13:06:09 +08:00
75ee8cacb8 fix: employee self-service - open controller access and clock-in/out
- LeaveApplicationController: add employee branch to bypass can() check
- AttendanceRecordController: add employee calendar view (own records only)
  + open clockIn/clockOut to employee type (no permission required)
- PayslipController: add employee branch to show own payslips only
- routes/web.php: remove permission:clock-in-out middleware from clock routes
- employee-dashboard.tsx: always show clock in/out buttons for employees
- Rebuild frontend assets
2026-06-30 13:51:02 +08:00
78d6c4d494 feat: implement 3-step payroll status workflow (draft -> processing -> completed) 2026-05-18 13:01:21 +08:00
6e10efc408 feat: implement 2-column payslip-style payroll adjustment overrides 2026-05-18 12:30:14 +08:00
273c8e8153 initial commit 2026-04-13 08:16:56 +08:00