From bbc8c930ae18b2c187ea1f7ae7eae4907e506f9e Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Wed, 5 Nov 2025 19:33:27 +0900 Subject: [PATCH] Add permission checks to link payment detail components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add checkGrant(55, 'W') for resend and separate approval in link-payment-history-detail - Add checkGrant(55, 'W') for delete in link-payment-wait-detail - Show alert message when user lacks permission - Simplify onClick handlers from arrow functions to direct method references 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../detail/link-payment-history-detail.tsx | 14 ++++++++++++-- .../detail/link-payment-wait-detail.tsx | 8 +++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/entities/additional-service/ui/link-payment/detail/link-payment-history-detail.tsx b/src/entities/additional-service/ui/link-payment/detail/link-payment-history-detail.tsx index 82d0e41..7877094 100644 --- a/src/entities/additional-service/ui/link-payment/detail/link-payment-history-detail.tsx +++ b/src/entities/additional-service/ui/link-payment/detail/link-payment-history-detail.tsx @@ -24,6 +24,8 @@ import moment from 'moment'; import { useTranslation } from 'react-i18next'; import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant'; import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export interface LinkPaymentHistoryDetailProps { detailOn: boolean; @@ -95,6 +97,10 @@ export const LinkPaymentHistoryDetail = ({ } const onClickToResend = () => { + if (!checkGrant(55, 'W')) { + showAlert(t('common.nopermission')); + return; + } let msg = t('additionalService.linkPayment.resendConfirm'); overlay.open(({ @@ -116,6 +122,10 @@ export const LinkPaymentHistoryDetail = ({ }; const onClickToSeparateApproval = () => { + if (!checkGrant(55, 'W')) { + showAlert(t('common.nopermission')); + return; + } navigate(PATHS.additionalService.linkPayment.separateApproval, { state: { mid, requestId } }); @@ -188,7 +198,7 @@ export const LinkPaymentHistoryDetail = ({
@@ -196,7 +206,7 @@ export const LinkPaymentHistoryDetail = ({
diff --git a/src/entities/additional-service/ui/link-payment/detail/link-payment-wait-detail.tsx b/src/entities/additional-service/ui/link-payment/detail/link-payment-wait-detail.tsx index 2190859..d009cf1 100644 --- a/src/entities/additional-service/ui/link-payment/detail/link-payment-wait-detail.tsx +++ b/src/entities/additional-service/ui/link-payment/detail/link-payment-wait-detail.tsx @@ -12,6 +12,8 @@ import { snackBar } from '@/shared/lib'; import { useTranslation } from 'react-i18next'; import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant'; import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export interface LinkPaymentWaitDetailProps { detailOn: boolean; @@ -62,6 +64,10 @@ export const LinkPaymentWaitDetail = ({ } const onClickToCancel = () => { + if (!checkGrant(55, 'W')) { + showAlert(t('common.nopermission')); + return; + } let msg = t('additionalService.linkPayment.deleteConfirm'); overlay.open(({ @@ -131,7 +137,7 @@ export const LinkPaymentWaitDetail = ({