Add permission checks to fund account components
- 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 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,8 @@ import { useExtensionFundAccountDownloadReceiptMutation } from '@/entities/addit
|
|||||||
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
||||||
import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
|
import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
|
||||||
import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
|
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 {
|
export interface FundAccountResultDetailProps {
|
||||||
detailOn: boolean;
|
detailOn: boolean;
|
||||||
@@ -47,6 +49,10 @@ export const FundAccountResultDetail = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToOpenEmailBottomSheet = () => {
|
const onClickToOpenEmailBottomSheet = () => {
|
||||||
|
if (!checkGrant(55, 'D')) {
|
||||||
|
showAlert(t('common.nopermission'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
setEmailBottomSheetOn(true);
|
setEmailBottomSheetOn(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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 { 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 { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
|
||||||
import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
|
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 {
|
export interface FundAccountTransferDetailProps {
|
||||||
detailOn: boolean;
|
detailOn: boolean;
|
||||||
@@ -43,6 +45,10 @@ export const FundAccountTransferDetail = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToRequest = () => {
|
const onClickToRequest = () => {
|
||||||
|
if (!checkGrant(55, 'X')) {
|
||||||
|
showAlert(t('common.nopermission'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
let params: ExtensionFundAccountTransferRequestParams = {
|
let params: ExtensionFundAccountTransferRequestParams = {
|
||||||
seq: seq
|
seq: seq
|
||||||
};
|
};
|
||||||
@@ -150,7 +156,7 @@ export const FundAccountTransferDetail = ({
|
|||||||
<div className="apply-row">
|
<div className="apply-row">
|
||||||
<button
|
<button
|
||||||
className="btn-50 btn-blue flex-1"
|
className="btn-50 btn-blue flex-1"
|
||||||
onClick={() => onClickToRequest()}
|
onClick={onClickToRequest}
|
||||||
disabled={detail?.resultStatus !== FundAccountStatus.REGIST_COMPLETE}
|
disabled={detail?.resultStatus !== FundAccountStatus.REGIST_COMPLETE}
|
||||||
>{t('additionalService.fundAccount.transferRequestButton')}</button>
|
>{t('additionalService.fundAccount.transferRequestButton')}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
|||||||
import useIntersectionObserver from '@/widgets/intersection-observer';
|
import useIntersectionObserver from '@/widgets/intersection-observer';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { FundAccountResultDetail } from './detail/result-detail';
|
import { FundAccountResultDetail } from './detail/result-detail';
|
||||||
|
import { checkGrant } from '@/shared/lib/check-grant';
|
||||||
|
import { showAlert } from '@/widgets/show-alert';
|
||||||
|
|
||||||
export const FundAccountResultListWrap = () => {
|
export const FundAccountResultListWrap = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
@@ -144,6 +146,10 @@ export const FundAccountResultListWrap = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToOpenEmailBottomSheet = () => {
|
const onClickToOpenEmailBottomSheet = () => {
|
||||||
|
if (!checkGrant(55, 'D')) {
|
||||||
|
showAlert(t('common.nopermission'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
setEmailBottomSheetOn(true);
|
setEmailBottomSheetOn(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -251,6 +257,10 @@ export const FundAccountResultListWrap = () => {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
const onClickToNavigate = () => {
|
const onClickToNavigate = () => {
|
||||||
|
if (!checkGrant(55, 'W')) {
|
||||||
|
showAlert(t('common.nopermission'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
navigate(PATHS.additionalService.fundAccount.transferRequest);
|
navigate(PATHS.additionalService.fundAccount.transferRequest);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
|||||||
import useIntersectionObserver from '@/widgets/intersection-observer';
|
import useIntersectionObserver from '@/widgets/intersection-observer';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { FundAccountTransferDetail } from './detail/transfer-detail';
|
import { FundAccountTransferDetail } from './detail/transfer-detail';
|
||||||
|
import { checkGrant } from '@/shared/lib/check-grant';
|
||||||
|
import { showAlert } from '@/widgets/show-alert';
|
||||||
|
|
||||||
export const FundAccountTransferListWrap = () => {
|
export const FundAccountTransferListWrap = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
@@ -127,6 +129,10 @@ export const FundAccountTransferListWrap = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToOpenEmailBottomSheet = () => {
|
const onClickToOpenEmailBottomSheet = () => {
|
||||||
|
if (!checkGrant(55, 'D')) {
|
||||||
|
showAlert(t('common.nopermission'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
setEmailBottomSheetOn(true);
|
setEmailBottomSheetOn(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -234,6 +240,10 @@ export const FundAccountTransferListWrap = () => {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
const onClickToNavigate = () => {
|
const onClickToNavigate = () => {
|
||||||
|
if (!checkGrant(55, 'W')) {
|
||||||
|
showAlert(t('common.nopermission'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
navigate(PATHS.additionalService.fundAccount.transferRequest);
|
navigate(PATHS.additionalService.fundAccount.transferRequest);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user