diff --git a/src/App.tsx b/src/App.tsx index b30b17d..6c37b5c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,7 +7,7 @@ import LeftSideBar from './components/LeftSideBar'; import { useAppDispatch, useAppSelector } from './redux/hooks'; import { setAuthData, setAuthToken } from './redux/slices/GoogleAuthSlice'; import { getRoutesMapping } from './routes'; -import { checkLitmusWritePermission } from './utils'; +import { checkAdminPermission } from './utils'; const initOptions = { url: (window as any)?.config.AUTH_BASE_URL, @@ -28,7 +28,7 @@ const App = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isWriteAllowed = checkLitmusWritePermission(permissions); + const isAdmin = checkAdminPermission(permissions); useEffect(() => { if ((window as any)?.config?.ENV === 'prod' || reactToken) { @@ -65,7 +65,7 @@ const App = () => { - {getRoutesMapping(isWriteAllowed)?.map((route) => ( + {getRoutesMapping(isAdmin)?.map((route) => ( ))} diff --git a/src/pages/Dashboard/index.tsx b/src/pages/Dashboard/index.tsx index 1193495..631920a 100644 --- a/src/pages/Dashboard/index.tsx +++ b/src/pages/Dashboard/index.tsx @@ -6,7 +6,7 @@ import Pagination from '@navi/web-ui/lib/components/Pagination'; import { useNavigate } from 'react-router-dom'; import { ROUTE_MAPPING, statusDropDownList } from '../../utils/constants'; import { - checkLitmusWritePermission, + checkAdminPermission, getSelectedValueLabel, objToQueryString, usePaginationDetails, @@ -28,7 +28,7 @@ const Dashboard = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isAdmin = checkAdminPermission(permissions); const [ownerDropDownList, setOwnerDropDownList] = useState< Array @@ -123,7 +123,7 @@ const Dashboard = () => { diff --git a/src/pages/EditExperiment/ExperimentDetails/Overview/SecondaryMetricTable.tsx b/src/pages/EditExperiment/ExperimentDetails/Overview/SecondaryMetricTable.tsx index a1158ae..22d9ccd 100644 --- a/src/pages/EditExperiment/ExperimentDetails/Overview/SecondaryMetricTable.tsx +++ b/src/pages/EditExperiment/ExperimentDetails/Overview/SecondaryMetricTable.tsx @@ -1,10 +1,14 @@ +import React, { useState } from 'react'; import { AgTable } from '@navi/web-ui/lib/components'; import { Button, Typography } from '@navi/web-ui/lib/primitives'; -import React, { useState } from 'react'; import AddSecondaryMetricModal from './AddSecondaryMetricModal'; import styles from '../../EditExperiment.module.scss'; import { useAppSelector } from '../../../../redux/hooks'; -import { checkLitmusWritePermission, getVariantsName } from '../../../../utils'; +import { + checkAdminPermission, + checkWritePermission, + getVariantsName, +} from '../../../../utils'; import { ExperimentStatus, MetricLabel } from '../../../../utils/enums'; const SecondaryMetricTable = () => { @@ -17,7 +21,8 @@ const SecondaryMetricTable = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isUpdatedAllowed = + checkWritePermission(permissions) || checkAdminPermission(permissions); const { overviewData, experimentInfo, variants } = updateExperiment || {}; const { experimentStatus } = experimentInfo || {}; diff --git a/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/TargetAudience.tsx b/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/TargetAudience.tsx index 3bf785f..2a07dc1 100644 --- a/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/TargetAudience.tsx +++ b/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/TargetAudience.tsx @@ -11,7 +11,8 @@ import Footer from './Footer'; import KeyValuePair from './KeyValuePair'; import UpdateStrategy from './UpdateStrategy'; import { - checkLitmusWritePermission, + checkAdminPermission, + checkWritePermission, isStrategyDetails, } from '../../../../utils'; import styles from '../../EditExperiment.module.scss'; @@ -25,7 +26,8 @@ const TargetAudience = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isUpdatedAllowed = + checkWritePermission(permissions) || checkAdminPermission(permissions); const { strategies, experimentInfo } = updateExperiment || {}; const { experimentStatus } = experimentInfo || {}; diff --git a/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/Variants.tsx b/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/Variants.tsx index 8a507a7..b42be78 100644 --- a/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/Variants.tsx +++ b/src/pages/EditExperiment/ExperimentDetails/TrafficConfig/Variants.tsx @@ -9,7 +9,8 @@ import KeyValuePair from './KeyValuePair'; import { ExperimentStatus } from '../../../../utils/enums'; import AddVariantForm from '../../../CreateExperiment/AddVariantForm'; import { - checkLitmusWritePermission, + checkAdminPermission, + checkWritePermission, isVariantDetails, } from '../../../../utils'; import styles from '../../EditExperiment.module.scss'; @@ -24,7 +25,8 @@ const Variants = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isUpdatedAllowed = + checkWritePermission(permissions) || checkAdminPermission(permissions); const { variants, experimentInfo } = updateExperiment || {}; const { experimentStatus } = experimentInfo || {}; diff --git a/src/pages/EditExperiment/Header/index.tsx b/src/pages/EditExperiment/Header/index.tsx index bdee9aa..3345551 100644 --- a/src/pages/EditExperiment/Header/index.tsx +++ b/src/pages/EditExperiment/Header/index.tsx @@ -15,7 +15,8 @@ import { useAppSelector } from '../../../redux/hooks'; import ConfirmDialog from './ConfirmDialog'; import ExperimentDetailsModal from './ExperimentDetailsModal'; import { - checkLitmusWritePermission, + checkAdminPermission, + checkWritePermission, getExperimentStatusHeaderColor, showSuccesToast, } from '../../../utils/index'; @@ -40,7 +41,8 @@ const Header = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isUpdatedAllowed = + checkWritePermission(permissions) || checkAdminPermission(permissions); const { experimentName, diff --git a/src/pages/Metrics/index.tsx b/src/pages/Metrics/index.tsx index d688f4a..a17d57f 100644 --- a/src/pages/Metrics/index.tsx +++ b/src/pages/Metrics/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import moment from 'moment'; import SearchBarInput from '@navi/web-ui/lib/components/SearchBarInput/SearchBarInput'; import Filter from '@navi/web-ui/lib/components/Filter/Filter'; @@ -13,7 +13,7 @@ import { ROUTE_MAPPING, } from '../../utils/constants'; import { - checkLitmusWritePermission, + checkAdminPermission, getSelectedValueLabel, objToQueryString, usePaginationDetails, @@ -29,7 +29,8 @@ import { CircularProgressLoader } from '../../components/circularProgressLoader' const Metrics = () => { const navigate = useNavigate(); - const [showCustomModal, setShowCustomModal] = React.useState(false); + const [showCustomModal, setShowCustomModal] = useState(false); + const { metricsDetails, isLoading } = useAppSelector( (state) => state.litmusFormDataStore, ); @@ -37,7 +38,7 @@ const Metrics = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isAdmin = checkAdminPermission(permissions); const { handlePageChange, @@ -153,7 +154,7 @@ const Metrics = () => { diff --git a/src/pages/Segmentation/index.tsx b/src/pages/Segmentation/index.tsx index 0598b96..36b7abc 100644 --- a/src/pages/Segmentation/index.tsx +++ b/src/pages/Segmentation/index.tsx @@ -9,7 +9,7 @@ import AgTable from '@navi/web-ui/lib/components/AgTable'; import Typography from '@navi/web-ui/lib/primitives/Typography'; import { DefaultText, ROUTE_MAPPING } from '../../utils/constants'; import { - checkLitmusWritePermission, + checkAdminPermission, getSelectedValueLabel, objToQueryString, usePaginationDetails, @@ -38,7 +38,7 @@ const Segmentation = () => { const { authData } = useAppSelector((state) => state.authStore); const { permissions } = authData || {}; - const isUpdatedAllowed = checkLitmusWritePermission(permissions); + const isAdmin = checkAdminPermission(permissions); const { getTeamDropDownList, getSegmentations } = useExperimentsApi(); @@ -158,7 +158,7 @@ const Segmentation = () => { diff --git a/src/utils/index.tsx b/src/utils/index.tsx index 88243c3..db55533 100644 --- a/src/utils/index.tsx +++ b/src/utils/index.tsx @@ -432,12 +432,12 @@ export const objToQueryString = (obj: object) => { return keyValuePairs.join('&'); }; -export const checkLitmusWritePermission = (permissions: any) => { +export const checkWritePermission = (permissions: any) => { return permissions?.includes('litmus.experiment.WRITE') || false; }; -export const checkLitmusReadPermission = (permissions: any) => { - return permissions?.includes('litmus.experiment.READ') || false; +export const checkAdminPermission = (permissions: any) => { + return permissions?.includes('litmus.experiment.ADMIN') || false; }; export const logout = () => {