diff --git a/src/entities/account/ui/password-manage-wrap.tsx b/src/entities/account/ui/password-manage-wrap.tsx index 8a5b865..bd7c8c6 100644 --- a/src/entities/account/ui/password-manage-wrap.tsx +++ b/src/entities/account/ui/password-manage-wrap.tsx @@ -1,11 +1,29 @@ import { useTranslation } from 'react-i18next'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export const PasswordManageWrap = () => { const { t } = useTranslation(); const { navigate } = useNavigate(); + const changeLoginPassword = () => { + if (!checkGrant(46, 'X')) { + showAlert(t('common.nopermission')); + return; + } + navigate(PATHS.account.password.modifyLoginPassword); + }; + + const changeCancelPassword = () => { + if (!checkGrant(46, 'X')) { + showAlert(t('common.nopermission')); + return; + } + navigate(PATHS.account.password.modifyCancelPassword); + }; + return ( <>
@@ -14,12 +32,12 @@ export const PasswordManageWrap = () => {
diff --git a/src/entities/account/ui/user-account-auth-wrap.tsx b/src/entities/account/ui/user-account-auth-wrap.tsx index b725534..a07780d 100644 --- a/src/entities/account/ui/user-account-auth-wrap.tsx +++ b/src/entities/account/ui/user-account-auth-wrap.tsx @@ -6,6 +6,8 @@ import { useUserUpdatePermissionsMutation } from '@/entities/user/api/use-user-u import { UserMenuPermissionData } from '@/entities/user/model/types'; import { MenuItems } from '@/entities/common/model/constant'; import { useTranslation } from 'react-i18next'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export const UserAccountAuthWrap = ({ mid, @@ -49,6 +51,21 @@ export const UserAccountAuthWrap = ({ const idCLChanged = currentIdCL !== idCL; setHasChanges(statusChanged || idCLChanged); }, [currentStatus, currentIdCL, status, idCL]); + + const handleSave = () => { + if (!checkGrant(45, 'X')) { + showAlert(t('common.nopermission')); + return; + } + console.log('updatePermissionMutation'); + updatePermissionsMutation.mutate({ + mid: mid, + usrid: usrid, + idCl: currentIdCL, + status: currentStatus + }); + }; + return ( <>
@@ -89,16 +106,7 @@ export const UserAccountAuthWrap = ({ className="btn-50 btn-blue flex-1" type="button" disabled={!hasChanges || updatePermissionsMutation.isPending} - onClick={() => { - console.log('updatePermissionMutation'); - updatePermissionsMutation.mutate( - { - mid: mid, - usrid: usrid, - idCl: currentIdCL, - status: currentStatus - }); - }} + onClick={handleSave} > {updatePermissionsMutation.isPending ? t('common.saving') : t('common.save')} diff --git a/src/entities/account/ui/user-manage-wrap.tsx b/src/entities/account/ui/user-manage-wrap.tsx index 53d3ad1..6395034 100644 --- a/src/entities/account/ui/user-manage-wrap.tsx +++ b/src/entities/account/ui/user-manage-wrap.tsx @@ -7,6 +7,8 @@ import { UserManageAuthList } from './user-manage-auth-list'; import { useUserFindMutation } from '@/entities/user/api/use-user-find-mutation'; import { UserListItem } from '@/entities/user/model/types'; import { useStore } from '@/shared/model/store'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; export const UserManageWrap = () => { const { t } = useTranslation(); @@ -33,6 +35,10 @@ export const UserManageWrap = () => { }; const onClickToNavigation = () => { + if (!checkGrant(45, 'X')) { + showAlert(t('common.nopermission')); + return; + } navigate(PATHS.account.user.addAccount, { state: { mid: mid, @@ -82,7 +88,7 @@ export const UserManageWrap = () => {
diff --git a/src/pages/support/faq/list-page.tsx b/src/pages/support/faq/list-page.tsx index ce3ab13..b8037d4 100644 --- a/src/pages/support/faq/list-page.tsx +++ b/src/pages/support/faq/list-page.tsx @@ -7,7 +7,7 @@ import { useFaqListMutation } from '@/entities/support/api/use-faq-list-mutation import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { DetailData, FaqItem, FaqListParams, FaqListResponse, SearchCl } from '@/entities/support/model/types'; import { SupportFaqItem } from '@/entities/support/ui/faq-item'; -import { +import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode, @@ -15,6 +15,7 @@ import { } from '@/widgets/sub-layout/use-sub-layout'; import useIntersectionObserver from '@/widgets/intersection-observer'; import { FaqDetail } from '@/entities/support/ui/detail/faq-detail'; +import { checkGrant } from '@/shared/lib/check-grant'; import { showAlert } from '@/widgets/show-alert'; export const FaqListPage = () => { @@ -137,6 +138,10 @@ export const FaqListPage = () => { }; const onClickToNavigation = () => { + if (!checkGrant(64, 'R')) { + showAlert(t('common.nopermission')); + return; + } navigate(PATHS.support.qna.list); }; diff --git a/src/shared/lib/check-grant.ts b/src/shared/lib/check-grant.ts index 56e8c55..0be5751 100644 --- a/src/shared/lib/check-grant.ts +++ b/src/shared/lib/check-grant.ts @@ -3,6 +3,9 @@ import { useStore } from "../model/store"; export const checkGrant = (menuId?: number, authType: string = 'R') => { const menuGrantsByKey = useStore.getState().UserStore.menuGrantsByKey; const myGrants = menuGrantsByKey['' + menuId]; + + console.log('checkGrant', menuId, authType, myGrants); + if(myGrants?.includes(authType) || menuId === -1){ return true }