From 6abbe9b11a4903c17e5ceaecb3a2dc26662f1134 Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Wed, 5 Nov 2025 19:27:15 +0900 Subject: [PATCH] Add permission checks to fund account components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add checkGrant(55, 'D') for download/email functions in transfer-list-wrap, result-list-wrap, and result-detail - Add checkGrant(55, 'W') for transfer registration navigation in transfer-list-wrap and result-list-wrap - Add checkGrant(55, 'X') for transfer request in transfer-detail - Show alert message when user lacks permission - Simplify onClick handler in transfer-detail from arrow function to direct method reference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../ui/fund-account/detail/result-detail.tsx | 6 ++++++ .../ui/fund-account/detail/transfer-detail.tsx | 8 +++++++- .../ui/fund-account/result-list-wrap.tsx | 10 ++++++++++ .../ui/fund-account/transfer-list-wrap.tsx | 10 ++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/entities/additional-service/ui/fund-account/detail/result-detail.tsx b/src/entities/additional-service/ui/fund-account/detail/result-detail.tsx index c914ff4..cf3d49d 100644 --- a/src/entities/additional-service/ui/fund-account/detail/result-detail.tsx +++ b/src/entities/additional-service/ui/fund-account/detail/result-detail.tsx @@ -13,6 +13,8 @@ import { useExtensionFundAccountDownloadReceiptMutation } from '@/entities/addit import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; 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 FundAccountResultDetailProps { detailOn: boolean; @@ -47,6 +49,10 @@ export const FundAccountResultDetail = ({ }; const onClickToOpenEmailBottomSheet = () => { + if (!checkGrant(55, 'D')) { + showAlert(t('common.nopermission')); + return; + } setEmailBottomSheetOn(true); }; diff --git a/src/entities/additional-service/ui/fund-account/detail/transfer-detail.tsx b/src/entities/additional-service/ui/fund-account/detail/transfer-detail.tsx index eabfdf5..eaeecc1 100644 --- a/src/entities/additional-service/ui/fund-account/detail/transfer-detail.tsx +++ b/src/entities/additional-service/ui/fund-account/detail/transfer-detail.tsx @@ -11,6 +11,8 @@ import { snackBar } from '@/shared/lib'; import { useExtensionFundAccountTransferRequestMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-transfer-request-mutation'; 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 FundAccountTransferDetailProps { detailOn: boolean; @@ -43,6 +45,10 @@ export const FundAccountTransferDetail = ({ }; const onClickToRequest = () => { + if (!checkGrant(55, 'X')) { + showAlert(t('common.nopermission')); + return; + } let params: ExtensionFundAccountTransferRequestParams = { seq: seq }; @@ -150,7 +156,7 @@ export const FundAccountTransferDetail = ({
diff --git a/src/entities/additional-service/ui/fund-account/result-list-wrap.tsx b/src/entities/additional-service/ui/fund-account/result-list-wrap.tsx index 05c475e..40be584 100644 --- a/src/entities/additional-service/ui/fund-account/result-list-wrap.tsx +++ b/src/entities/additional-service/ui/fund-account/result-list-wrap.tsx @@ -19,6 +19,8 @@ import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import useIntersectionObserver from '@/widgets/intersection-observer'; import { useTranslation } from 'react-i18next'; import { FundAccountResultDetail } from './detail/result-detail'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export const FundAccountResultListWrap = () => { const { navigate } = useNavigate(); @@ -144,6 +146,10 @@ export const FundAccountResultListWrap = () => { }; const onClickToOpenEmailBottomSheet = () => { + if (!checkGrant(55, 'D')) { + showAlert(t('common.nopermission')); + return; + } setEmailBottomSheetOn(true); }; @@ -251,6 +257,10 @@ export const FundAccountResultListWrap = () => { ]); const onClickToNavigate = () => { + if (!checkGrant(55, 'W')) { + showAlert(t('common.nopermission')); + return; + } navigate(PATHS.additionalService.fundAccount.transferRequest); }; diff --git a/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx b/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx index ef48ef6..164adc3 100644 --- a/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx +++ b/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx @@ -28,6 +28,8 @@ import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import useIntersectionObserver from '@/widgets/intersection-observer'; import { useTranslation } from 'react-i18next'; import { FundAccountTransferDetail } from './detail/transfer-detail'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export const FundAccountTransferListWrap = () => { const { navigate } = useNavigate(); @@ -127,6 +129,10 @@ export const FundAccountTransferListWrap = () => { }; const onClickToOpenEmailBottomSheet = () => { + if (!checkGrant(55, 'D')) { + showAlert(t('common.nopermission')); + return; + } setEmailBottomSheetOn(true); }; @@ -234,6 +240,10 @@ export const FundAccountTransferListWrap = () => { ]); const onClickToNavigate = () => { + if (!checkGrant(55, 'W')) { + showAlert(t('common.nopermission')); + return; + } navigate(PATHS.additionalService.fundAccount.transferRequest); };