diff --git a/frontend/src/features/idir/search/components/IDIRPermitSearchResults.tsx b/frontend/src/features/idir/search/components/IDIRPermitSearchResults.tsx index 948625b38b..2c8a58fa76 100644 --- a/frontend/src/features/idir/search/components/IDIRPermitSearchResults.tsx +++ b/frontend/src/features/idir/search/components/IDIRPermitSearchResults.tsx @@ -163,6 +163,13 @@ export const IDIRPermitSearchResults = memo( }, }); + const canViewExpiredPermitReceipt = usePermissionMatrix({ + permissionMatrixKeys: { + permissionMatrixFeatureKey: "MANAGE_PERMITS", + permissionMatrixFunctionKey: "VIEW_EXPIRED_PERMIT_RECEIPT", + }, + }); + const canAmendPermit = usePermissionMatrix({ permissionMatrixKeys: { permissionMatrixFeatureKey: "GLOBAL_SEARCH", @@ -244,6 +251,7 @@ export const IDIRPermitSearchResults = memo( canAmendPermit, canResendPermit, canViewPermitReceipt, + canViewExpiredPermitReceipt, canVoidPermit, }} /> diff --git a/frontend/src/features/permits/components/permit-list/BasePermitList.tsx b/frontend/src/features/permits/components/permit-list/BasePermitList.tsx index 28e47834f9..6a703e7801 100644 --- a/frontend/src/features/permits/components/permit-list/BasePermitList.tsx +++ b/frontend/src/features/permits/components/permit-list/BasePermitList.tsx @@ -104,6 +104,13 @@ export const BasePermitList = ({ }, }); + const canViewIndividualExpiredPermitPDF = usePermissionMatrix({ + permissionMatrixKeys: { + permissionMatrixFeatureKey: "MANAGE_PERMITS", + permissionMatrixFunctionKey: "VIEW_INDIVIDUAL_EXPIRED_PERMIT_PDF", + }, + }); + const canResendPermit = usePermissionMatrix({ permissionMatrixKeys: { permissionMatrixFeatureKey: "GLOBAL_SEARCH", @@ -118,6 +125,13 @@ export const BasePermitList = ({ }, }); + const canViewExpiredPermitReceipt = usePermissionMatrix({ + permissionMatrixKeys: { + permissionMatrixFeatureKey: "MANAGE_PERMITS", + permissionMatrixFunctionKey: "VIEW_EXPIRED_PERMIT_RECEIPT", + }, + }); + const canAmendPermit = usePermissionMatrix({ permissionMatrixKeys: { permissionMatrixFeatureKey: "GLOBAL_SEARCH", @@ -136,7 +150,9 @@ export const BasePermitList = ({ ...defaultTableOptions, columns: PermitsColumnDefinition( () => navigate(ERROR_ROUTES.DOCUMENT_UNAVAILABLE), + isExpired, canViewIndividualActivePermitPDF, + canViewIndividualExpiredPermitPDF, ), data: data?.items ?? [], enableRowSelection: false, @@ -200,6 +216,7 @@ export const BasePermitList = ({ canAmendPermit, canResendPermit, canViewPermitReceipt, + canViewExpiredPermitReceipt, canVoidPermit, }} /> diff --git a/frontend/src/features/permits/components/permit-list/Columns.tsx b/frontend/src/features/permits/components/permit-list/Columns.tsx index 0449e6f9cd..0e5539bbb2 100644 --- a/frontend/src/features/permits/components/permit-list/Columns.tsx +++ b/frontend/src/features/permits/components/permit-list/Columns.tsx @@ -14,8 +14,13 @@ import { getPermitTypeName } from "../../types/PermitType"; */ export const PermitsColumnDefinition = ( onDocumentUnavailable: () => void, - enableLink: boolean, + isExpired: boolean, + canViewIndividualActivePermitPDF: boolean, + canViewIndividualExpiredPermitPDF: boolean, ): MRT_ColumnDef[] => { + const enableLink = + (!isExpired && canViewIndividualActivePermitPDF) || + (isExpired && canViewIndividualExpiredPermitPDF); return [ { accessorKey: "permitNumber", diff --git a/frontend/src/features/permits/components/permit-list/PermitRowOptions.tsx b/frontend/src/features/permits/components/permit-list/PermitRowOptions.tsx index aee076d597..c40a18844b 100644 --- a/frontend/src/features/permits/components/permit-list/PermitRowOptions.tsx +++ b/frontend/src/features/permits/components/permit-list/PermitRowOptions.tsx @@ -52,6 +52,7 @@ export const PermitRowOptions = ({ permissions: { canResendPermit: boolean; canViewPermitReceipt: boolean; + canViewExpiredPermitReceipt: boolean; canAmendPermit: boolean; canVoidPermit: boolean; }; @@ -125,6 +126,7 @@ export const PermitRowOptions = ({ const { canResendPermit, canViewPermitReceipt, + canViewExpiredPermitReceipt, canAmendPermit, canVoidPermit, } = permissions; @@ -136,7 +138,9 @@ export const PermitRowOptions = ({ }, { action: PERMIT_ACTION_TYPES.VIEW_RECEIPT, - isAuthorized: () => canViewPermitReceipt, + isAuthorized: (isExpired: boolean) => + (!isExpired && canViewPermitReceipt) || + (isExpired && canViewExpiredPermitReceipt), }, { action: PERMIT_ACTION_TYPES.AMEND,