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
}