From ec5da5c5baf7e9a2259682fc8c5eac3f883dc203 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Fri, 14 Aug 2026 03:47:47 +0700 Subject: [PATCH] feat: enhance payroll functionality by adding user authentication and role checks --- .../pages/admin/finance/payroll-period/show-columns.tsx | 7 ++++++- resources/js/pages/admin/finance/payroll-period/show.tsx | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/resources/js/pages/admin/finance/payroll-period/show-columns.tsx b/resources/js/pages/admin/finance/payroll-period/show-columns.tsx index 47b5a33..9e85ee5 100644 --- a/resources/js/pages/admin/finance/payroll-period/show-columns.tsx +++ b/resources/js/pages/admin/finance/payroll-period/show-columns.tsx @@ -28,6 +28,7 @@ export type Payroll = { export type PayrollAdjustment = { id: number; + created_by_id: number; type: 'bonus' | 'deduction'; amount: number; description: string; @@ -68,6 +69,8 @@ type CreateColumnsParams = { payrollId: number, ) => void; can: (permission: string) => boolean; + hasAnyRole: (roles: string[]) => boolean; + userId: number; }; export function createPayrollColumns( @@ -79,6 +82,8 @@ export function createPayrollColumns( handleAddAdjustment, handleDeleteAdjustment, can, + hasAnyRole, + userId, } = params; const hasAnyPayrollAction = can('payroll.adjust') || can('payroll.pay') || can('payroll.cancel'); @@ -187,7 +192,7 @@ export function createPayrollColumns( {adj.description} - {can('payroll.adjust') && payroll.status === 'unpaid' && ( + {can('payroll.adjust') && payroll.status === 'unpaid' && (adj.created_by_id === userId || hasAnyRole(['developer', 'owner'])) && (