Fix #7648 UI : Add ViewBasic operation for resources (#7659)

* Fix #7648 UI : Add ViewBasic operation for resources

* Minor change
This commit is contained in:
Sachin Chaurasiya 2022-09-22 18:55:02 +05:30 committed by GitHub
parent 6fb2b87a29
commit 3c809d3426
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 143 additions and 129 deletions

View File

@ -240,7 +240,11 @@ const DatasetDetails: React.FC<DatasetDetailsProps> = ({
selectedName: 'sample-data-color',
},
isProtected: false,
isHidden: !(tablePermissions.ViewAll || tablePermissions.ViewSampleData),
isHidden: !(
tablePermissions.ViewAll ||
tablePermissions.ViewBasic ||
tablePermissions.ViewSampleData
),
position: 3,
},
{
@ -252,7 +256,11 @@ const DatasetDetails: React.FC<DatasetDetailsProps> = ({
selectedName: '',
},
isProtected: false,
isHidden: !(tablePermissions.ViewAll || tablePermissions.ViewQueries),
isHidden: !(
tablePermissions.ViewAll ||
tablePermissions.ViewBasic ||
tablePermissions.ViewQueries
),
position: 4,
},
{
@ -266,6 +274,7 @@ const DatasetDetails: React.FC<DatasetDetailsProps> = ({
isProtected: false,
isHidden: !(
tablePermissions.ViewAll ||
tablePermissions.ViewBasic ||
tablePermissions.ViewDataProfile ||
tablePermissions.ViewTests
),

View File

@ -56,6 +56,9 @@ jest.mock('../PermissionProvider/PermissionProvider', () => ({
jest.mock('../../utils/PermissionsUtils', () => ({
checkPermission: jest.fn().mockReturnValue(true),
userPermissions: {
hasViewPermissions: jest.fn(),
},
}));
jest.mock('react-router-dom', () => ({

View File

@ -448,14 +448,16 @@ const Ingestion: React.FC<IngestionProps> = ({
{airflowEndpoint ? (
<Tooltip
title={
permissions.ViewAll
permissions.ViewAll || permissions.ViewBasic
? 'View Dag'
: NO_PERMISSION_TO_VIEW
}>
<Button
className="tw-mr-2"
data-testid="airflow-tree-view"
disabled={!permissions.ViewAll}
disabled={
!(permissions.ViewAll || permissions.ViewBasic)
}
href={`${airflowEndpoint}/tree?dag_id=${ingestion.name}`}
rel="noopener noreferrer"
target="_blank"

View File

@ -333,12 +333,16 @@ const ProfilerDashboard: React.FC<ProfilerDashboardProps> = ({
return;
} else if (
ProfilerDashboardTab.DATA_QUALITY === value &&
(tablePermissions.ViewAll || tablePermissions.ViewTests)
(tablePermissions.ViewAll ||
tablePermissions.ViewBasic ||
tablePermissions.ViewTests)
) {
fetchTestCases(generateEntityLink(entityTypeFQN, true));
} else if (
ProfilerDashboardTab.PROFILER === value &&
(tablePermissions.ViewAll || tablePermissions.ViewDataProfile)
(tablePermissions.ViewAll ||
tablePermissions.ViewBasic ||
tablePermissions.ViewDataProfile)
) {
fetchProfilerData(entityTypeFQN);
}

View File

@ -103,8 +103,10 @@ const TableProfilerV1: FC<TableProfilerProps> = ({ table, permissions }) => {
return testCaseStatus;
}, []);
const viewTest = permissions.ViewAll || permissions.ViewTests;
const viewProfiler = permissions.ViewAll || permissions.ViewDataProfile;
const viewTest =
permissions.ViewAll || permissions.ViewBasic || permissions.ViewTests;
const viewProfiler =
permissions.ViewAll || permissions.ViewBasic || permissions.ViewDataProfile;
const editTest = permissions.EditAll || permissions.EditTests;
const handleSettingModal = (value: boolean) => {

View File

@ -848,7 +848,8 @@ const TeamDetailsV1 = ({
);
};
const viewPermission = entityPermissions.ViewAll;
const viewPermission =
entityPermissions.ViewAll || entityPermissions.ViewBasic;
return viewPermission ? (
<div

View File

@ -78,7 +78,7 @@ const Teams: FC<TeamsProps> = ({
fetchPermissions();
}, []);
return resourcePermissions.ViewAll ? (
return resourcePermissions.ViewAll || resourcePermissions.ViewBasic ? (
<Row className="team-list-container" gutter={[16, 16]}>
<Col span={24}>
<Space align="center" className="tw-w-full tw-justify-end" size={16}>

View File

@ -35,7 +35,7 @@ import { Operation } from '../../generated/entity/policies/policy';
import { IngestionPipeline } from '../../generated/entity/services/ingestionPipelines/ingestionPipeline';
import jsonData from '../../jsons/en';
import { getIngestionStatuses } from '../../utils/CommonUtils';
import { checkPermission } from '../../utils/PermissionsUtils';
import { checkPermission, userPermissions } from '../../utils/PermissionsUtils';
import { getTestSuiteIngestionPath } from '../../utils/RouterUtils';
import SVGIcons, { Icons } from '../../utils/SvgUtils';
import { showErrorToast, showSuccessToast } from '../../utils/ToastUtils';
@ -73,8 +73,7 @@ const TestSuitePipelineTab = () => {
const viewPermission = useMemo(
() =>
checkPermission(
Operation.ViewAll,
userPermissions.hasViewPermissions(
ResourceEntity.INGESTION_PIPELINE,
permissions
),

View File

@ -16,10 +16,9 @@ import { observer } from 'mobx-react';
import { ImageShape } from 'Models';
import React, { useMemo } from 'react';
import AppState from '../../../AppState';
import { Operation } from '../../../generated/entity/policies/policy';
import { EntityReference, User } from '../../../generated/entity/teams/user';
import { getEntityName } from '../../../utils/CommonUtils';
import { checkPermission } from '../../../utils/PermissionsUtils';
import { userPermissions } from '../../../utils/PermissionsUtils';
import { getUserProfilePic } from '../../../utils/UserDataUtils';
import Loader from '../../Loader/Loader';
import { usePermissionProvider } from '../../PermissionProvider/PermissionProvider';
@ -51,7 +50,7 @@ const ProfilePicture = ({
const { permissions } = usePermissionProvider();
const viewUserPermission = useMemo(() => {
return checkPermission(Operation.ViewAll, ResourceEntity.USER, permissions);
return userPermissions.hasViewPermissions(ResourceEntity.USER, permissions);
}, [permissions]);
const profilePic = useMemo(() => {

View File

@ -138,7 +138,7 @@ const BotDetailsPage = () => {
};
useEffect(() => {
if (botPermission.ViewAll) {
if (botPermission.ViewAll || botPermission.ViewBasic) {
fetchBotsData();
}
}, [botPermission, botsName]);
@ -153,7 +153,7 @@ const BotDetailsPage = () => {
<Loader />
) : (
<>
{botPermission.ViewAll ? (
{botPermission.ViewAll || botPermission.ViewBasic ? (
getBotsDetailComponent()
) : (
<ErrorPlaceHolder>{NO_PERMISSION_TO_VIEW}</ErrorPlaceHolder>

View File

@ -72,7 +72,7 @@ const CustomEntityDetailV1 = () => {
};
const viewPermission = useMemo(
() => propertyPermission.ViewAll,
() => propertyPermission.ViewAll || propertyPermission.ViewBasic,
[propertyPermission, tab]
);

View File

@ -753,7 +753,7 @@ const DashboardDetailsPage = () => {
}, [activeTab]);
useEffect(() => {
if (dashboardPermissions.ViewAll) {
if (dashboardPermissions.ViewAll || dashboardPermissions.ViewBasic) {
fetchDashboardDetail(dashboardFQN);
setEntityLineage({} as EntityLineage);
getEntityFeedCount();
@ -781,7 +781,7 @@ const DashboardDetailsPage = () => {
</ErrorPlaceHolder>
) : (
<>
{dashboardPermissions.ViewAll ? (
{dashboardPermissions.ViewAll || dashboardPermissions.ViewBasic ? (
<DashboardDetails
activeTab={activeTab}
addLineageHandler={addLineageHandler}

View File

@ -586,7 +586,10 @@ const DatabaseSchemaPage: FunctionComponent = () => {
}, [isInView, paging, isentityThreadLoading]);
useEffect(() => {
if (databaseSchemaPermission.ViewAll) {
if (
databaseSchemaPermission.ViewAll ||
databaseSchemaPermission.ViewBasic
) {
const currentTab = getCurrentDatabaseSchemaDetailsTab(tab);
const currentTabIndex = currentTab - 1;
@ -618,7 +621,8 @@ const DatabaseSchemaPage: FunctionComponent = () => {
</ErrorPlaceHolder>
) : (
<>
{databaseSchemaPermission.ViewAll ? (
{databaseSchemaPermission.ViewAll ||
databaseSchemaPermission.ViewBasic ? (
<PageContainer>
<div
className="tw-px-6 tw-w-full tw-h-full tw-flex tw-flex-col"

View File

@ -797,7 +797,7 @@ const DatasetDetailsPage: FunctionComponent = () => {
};
useEffect(() => {
if (tablePermissions.ViewAll) {
if (tablePermissions.ViewAll || tablePermissions.ViewBasic) {
fetchTableDetail();
setActiveTab(getCurrentDatasetTab(tab));
getEntityFeedCount();
@ -829,7 +829,7 @@ const DatasetDetailsPage: FunctionComponent = () => {
</ErrorPlaceHolder>
) : (
<>
{tablePermissions.ViewAll ? (
{tablePermissions.ViewAll || tablePermissions.ViewBasic ? (
<DatasetDetails
activeTab={activeTab}
addLineageHandler={addLineageHandler}

View File

@ -431,7 +431,7 @@ const MlModelPage = () => {
}, [activeTab, mlModelDetail]);
useEffect(() => {
if (mlModelPermissions.ViewAll) {
if (mlModelPermissions.ViewAll || mlModelPermissions.ViewBasic) {
fetchMlModelDetails(mlModelFqn);
}
}, [mlModelPermissions, mlModelFqn]);
@ -446,7 +446,7 @@ const MlModelPage = () => {
<Loader />
) : (
<>
{mlModelPermissions.ViewAll ? (
{mlModelPermissions.ViewAll || mlModelPermissions.ViewBasic ? (
getMlModelDetail()
) : (
<ErrorPlaceHolder>{NO_PERMISSION_TO_VIEW}</ErrorPlaceHolder>

View File

@ -39,13 +39,12 @@ import { SOCKET_EVENTS } from '../../constants/constants';
import { AssetsType } from '../../enums/entity.enum';
import { FeedFilter } from '../../enums/mydata.enum';
import { Post, Thread, ThreadType } from '../../generated/entity/feed/thread';
import { Operation as RuleOperation } from '../../generated/entity/policies/accessControl/rule';
import { EntitiesCount } from '../../generated/entity/utils/entitiesCount';
import { Paging } from '../../generated/type/paging';
import { useAuth } from '../../hooks/authHooks';
import jsonData from '../../jsons/en';
import { deletePost, updateThreadData } from '../../utils/FeedUtils';
import { checkPermission } from '../../utils/PermissionsUtils';
import { userPermissions } from '../../utils/PermissionsUtils';
import { showErrorToast } from '../../utils/ToastUtils';
const MyDataPage = () => {
@ -80,7 +79,7 @@ const MyDataPage = () => {
const viewUserPermission = useMemo(() => {
return (
!isEmpty(permissions) &&
checkPermission(RuleOperation.ViewAll, ResourceEntity.USER, permissions)
userPermissions.hasViewPermissions(ResourceEntity.USER, permissions)
);
}, [permissions]);

View File

@ -695,7 +695,7 @@ const PipelineDetailsPage = () => {
}, [activeTab]);
useEffect(() => {
if (pipelinePermissions.ViewAll) {
if (pipelinePermissions.ViewAll || pipelinePermissions.ViewBasic) {
fetchPipelineDetail(pipelineFQN);
setEntityLineage({} as EntityLineage);
getEntityFeedCount();
@ -723,7 +723,7 @@ const PipelineDetailsPage = () => {
</ErrorPlaceHolder>
) : (
<>
{pipelinePermissions.ViewAll ? (
{pipelinePermissions.ViewAll || pipelinePermissions.ViewBasic ? (
<PipelineDetails
activeTab={activeTab}
addLineageHandler={addLineageHandler}

View File

@ -420,7 +420,7 @@ const PoliciesDetailPage = () => {
}, [fqn]);
useEffect(() => {
if (policyPermission.ViewAll) {
if (policyPermission.ViewAll || policyPermission.ViewBasic) {
fetchPolicy();
}
}, [policyPermission, fqn]);
@ -432,7 +432,7 @@ const PoliciesDetailPage = () => {
return (
<div data-testid="policy-details-container">
<TitleBreadcrumb titleLinks={breadcrumb} />
{policyPermission.ViewAll ? (
{policyPermission.ViewAll || policyPermission.ViewBasic ? (
<>
{isEmpty(policy) ? (
<Empty description={`No policy found for ${fqn}`}>

View File

@ -71,6 +71,9 @@ jest.mock('../../../utils/CommonUtils', () => ({
jest.mock('../../../utils/PermissionsUtils', () => ({
checkPermission: jest.fn().mockReturnValue(true),
LIST_CAP: 1,
userPermissions: {
hasViewPermissions: jest.fn(),
},
}));
jest.mock('../../../utils/RouterUtils', () => ({

View File

@ -28,7 +28,11 @@ import { EntityType } from '../../../enums/entity.enum';
import { Operation, Policy } from '../../../generated/entity/policies/policy';
import { Paging } from '../../../generated/type/paging';
import { getEntityName } from '../../../utils/CommonUtils';
import { checkPermission, LIST_CAP } from '../../../utils/PermissionsUtils';
import {
checkPermission,
LIST_CAP,
userPermissions,
} from '../../../utils/PermissionsUtils';
import {
getPolicyWithFqnPath,
getRoleWithFqnPath,
@ -55,7 +59,7 @@ const PoliciesList: FC<PolicyListProps> = ({ policies, fetchPolicies }) => {
const viewRolePermission = useMemo(() => {
return (
!isEmpty(permissions) &&
checkPermission(Operation.ViewAll, ResourceEntity.ROLE, permissions)
userPermissions.hasViewPermissions(ResourceEntity.ROLE, permissions)
);
}, [permissions]);

View File

@ -157,10 +157,14 @@ const ProfilerDashboardPage = () => {
const getProfilerDashboard = (permission: OperationPermission) => {
if (
tab === ProfilerDashboardTab.DATA_QUALITY &&
(permission.ViewAll || permission.ViewTests)
(permission.ViewAll || permission.ViewBasic || permission.ViewTests)
) {
fetchTestCases(generateEntityLink(entityTypeFQN));
} else if (permission.ViewAll || permission.ViewDataProfile) {
} else if (
permission.ViewAll ||
permission.ViewBasic ||
permission.ViewDataProfile
) {
fetchProfilerData(entityTypeFQN);
} else {
setIsLoading(false);

View File

@ -342,7 +342,7 @@ const RolesDetailPage = () => {
}, [fqn]);
useEffect(() => {
if (rolePermission.ViewAll) {
if (rolePermission.ViewAll || rolePermission.ViewBasic) {
fetchRole();
}
}, [rolePermission, fqn]);
@ -354,7 +354,7 @@ const RolesDetailPage = () => {
return (
<div data-testid="role-details-container">
<TitleBreadcrumb titleLinks={breadcrumb} />
{rolePermission.ViewAll ? (
{rolePermission.ViewAll || rolePermission.ViewBasic ? (
<>
{isEmpty(role) ? (
<Empty

View File

@ -29,7 +29,11 @@ import { Operation } from '../../../generated/entity/policies/policy';
import { Role } from '../../../generated/entity/teams/role';
import { Paging } from '../../../generated/type/paging';
import { getEntityName } from '../../../utils/CommonUtils';
import { checkPermission, LIST_CAP } from '../../../utils/PermissionsUtils';
import {
checkPermission,
LIST_CAP,
userPermissions,
} from '../../../utils/PermissionsUtils';
import {
getPolicyWithFqnPath,
getRoleWithFqnPath,
@ -49,7 +53,7 @@ const RolesList: FC<RolesListProps> = ({ roles, fetchRoles }) => {
const viewPolicyPermission = useMemo(() => {
return (
!isEmpty(permissions) &&
checkPermission(Operation.ViewAll, ResourceEntity.POLICY, permissions)
userPermissions.hasViewPermissions(ResourceEntity.POLICY, permissions)
);
}, [permissions]);

View File

@ -274,7 +274,7 @@ const TestSuiteDetailsPage = () => {
);
useEffect(() => {
if (testSuitePermissions.ViewAll) {
if (testSuitePermissions.ViewAll || testSuitePermissions.ViewBasic) {
fetchTestSuiteByName();
}
}, [testSuitePermissions, testSuiteFQN]);
@ -289,7 +289,7 @@ const TestSuiteDetailsPage = () => {
return (
<>
{testSuitePermissions.ViewAll ? (
{testSuitePermissions.ViewAll || testSuitePermissions.ViewBasic ? (
<PageContainer>
<Row className="tw-px-6 tw-w-full">
<Col span={24}>

View File

@ -695,7 +695,7 @@ const TopicDetailsPage: FunctionComponent = () => {
}, [topicFQN]);
useEffect(() => {
if (topicPermissions.ViewAll) {
if (topicPermissions.ViewAll || topicPermissions.ViewBasic) {
fetchTopicDetail(topicFQN);
getEntityFeedCount();
}
@ -711,7 +711,7 @@ const TopicDetailsPage: FunctionComponent = () => {
</ErrorPlaceHolder>
) : (
<>
{topicPermissions.ViewAll ? (
{topicPermissions.ViewAll || topicPermissions.ViewBasic ? (
<TopicDetails
activeTab={activeTab}
cleanupPolicies={cleanupPolicies}

View File

@ -556,7 +556,7 @@ const DatabaseDetails: FunctionComponent = () => {
}, [appState.inPageSearchText]);
useEffect(() => {
if (databasePermission.ViewAll) {
if (databasePermission.ViewAll || databasePermission.ViewBasic) {
const currentTab = getCurrentDatabaseDetailsTab(tab);
const currentTabIndex = currentTab - 1;
@ -599,7 +599,7 @@ const DatabaseDetails: FunctionComponent = () => {
</ErrorPlaceHolder>
) : (
<>
{databasePermission.ViewAll ? (
{databasePermission.ViewAll || databasePermission.ViewBasic ? (
<PageContainer>
<div
className="tw-px-6 tw-w-full tw-h-full tw-flex tw-flex-col"

View File

@ -690,7 +690,7 @@ const ServicePage: FunctionComponent = () => {
}, [serviceCategory, serviceType]);
useEffect(() => {
if (servicePermission.ViewAll) {
if (servicePermission.ViewAll || servicePermission.ViewBasic) {
setIsLoading(true);
getServiceByFQN(serviceName, serviceFQN, 'owner')
.then((resService) => {
@ -738,7 +738,7 @@ const ServicePage: FunctionComponent = () => {
}, [serviceFQN, serviceName, servicePermission, serviceType]);
useEffect(() => {
if (servicePermission.ViewAll) {
if (servicePermission.ViewAll || servicePermission.ViewBasic) {
const currentTab = getCurrentServiceTab(tab);
const currentTabIndex = currentTab - 1;
@ -915,7 +915,7 @@ const ServicePage: FunctionComponent = () => {
</ErrorPlaceHolder>
) : (
<>
{servicePermission.ViewAll ? (
{servicePermission.ViewAll || servicePermission.ViewBasic ? (
<Col span={24}>
<div
className="tw-px-6 tw-w-full tw-h-full tw-flex tw-flex-col"

View File

@ -25,11 +25,10 @@ import { pagingObject } from '../../constants/constants';
import { NO_PERMISSION_TO_VIEW } from '../../constants/HelperTextUtil';
import { SERVICE_CATEGORY } from '../../constants/services.const';
import { ServiceCategory as Category } from '../../enums/service.enum';
import { Operation } from '../../generated/entity/policies/policy';
import { Paging } from '../../generated/type/paging';
import { ServicesType } from '../../interface/service.interface';
import jsonData from '../../jsons/en';
import { checkPermission } from '../../utils/PermissionsUtils';
import { userPermissions } from '../../utils/PermissionsUtils';
import { getResourceEntityFromServiceCategory } from '../../utils/ServiceUtils';
import { showErrorToast } from '../../utils/ToastUtils';
@ -49,8 +48,7 @@ const ServicesPage = () => {
const viewAllPermission = useMemo(() => {
return (
!isEmpty(permissions) &&
checkPermission(
Operation.ViewAll,
userPermissions.hasViewPermissions(
getResourceEntityFromServiceCategory(tab),
permissions
)

View File

@ -468,7 +468,7 @@ const TeamsPage = () => {
};
useEffect(() => {
if (entityPermissions.ViewAll) {
if (entityPermissions.ViewAll || entityPermissions.ViewBasic) {
if (fqn) {
fetchTeamByFqn(fqn);
}
@ -486,7 +486,7 @@ const TeamsPage = () => {
return (
<>
{entityPermissions.ViewAll ? (
{entityPermissions.ViewAll || entityPermissions.ViewBasic ? (
<>
{isUndefined(fqn) ? (
<Teams

View File

@ -19,7 +19,7 @@ import { usePermissionProvider } from '../components/PermissionProvider/Permissi
import { ResourceEntity } from '../components/PermissionProvider/PermissionProvider.interface';
import { ROUTES } from '../constants/constants';
import { Operation } from '../generated/entity/policies/policy';
import { checkPermission } from '../utils/PermissionsUtils';
import { checkPermission, userPermissions } from '../utils/PermissionsUtils';
import AdminProtectedRoute from './AdminProtectedRoute';
import withSuspenseFallback from './withSuspenseFallback';
@ -214,27 +214,27 @@ const AuthenticatedAppRouter: FunctionComponent = () => {
const glossaryPermission = useMemo(
() =>
checkPermission(Operation.ViewAll, ResourceEntity.GLOSSARY, permissions),
userPermissions.hasViewPermissions(ResourceEntity.GLOSSARY, permissions),
[permissions]
);
const glossaryTermPermission = useMemo(
() =>
checkPermission(
Operation.ViewAll,
userPermissions.hasViewPermissions(
ResourceEntity.GLOSSARY_TERM,
permissions
),
[permissions]
);
const tagCategoryPermission = useMemo(
() =>
checkPermission(
Operation.ViewAll,
userPermissions.hasViewPermissions(
ResourceEntity.TAG_CATEGORY,
permissions
),
[permissions]
);

View File

@ -19,11 +19,10 @@ import {
GlobalSettingOptions,
GlobalSettingsMenuCategory,
} from '../constants/globalSettings.constants';
import { Operation } from '../generated/entity/policies/policy';
import { TeamType } from '../generated/entity/teams/team';
import ActivityFeedSettingsPage from '../pages/ActivityFeedSettingsPage/ActivityFeedSettingsPage';
import TeamsPage from '../pages/teams/TeamsPage';
import { checkPermission } from '../utils/PermissionsUtils';
import { userPermissions } from '../utils/PermissionsUtils';
import {
getSettingCategoryPath,
getSettingPath,
@ -107,8 +106,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={TestSuitePage}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.TEST_SUITE,
permissions
)}
@ -123,8 +121,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={RolesListPage}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.ROLE,
permissions
)}
@ -150,8 +147,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={PoliciesListPage}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.POLICY,
permissions
)}
@ -172,8 +168,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={UserListPageV1}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.USER,
permissions
)}
@ -183,8 +178,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={WebhooksPageV1}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.WEBHOOK,
permissions
)}
@ -196,8 +190,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={BotsPageV1}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.BOT,
permissions
)}
@ -210,8 +203,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={SlackSettingsPage}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.WEBHOOK,
permissions
)}
@ -225,8 +217,7 @@ const GlobalSettingRouter = () => {
// Currently we don't have any permission related to ActivityFeed settings page
// update below once we have it
component={ActivityFeedSettingsPage}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.FEED,
permissions
)}
@ -238,8 +229,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={MsTeamsPage}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.WEBHOOK,
permissions
)}
@ -258,8 +248,7 @@ const GlobalSettingRouter = () => {
<AdminProtectedRoute
exact
component={CustomPropertiesPageV1}
hasPermission={checkPermission(
Operation.ViewAll,
hasPermission={userPermissions.hasViewPermissions(
ResourceEntity.TYPE,
permissions
)}

View File

@ -34,8 +34,7 @@ import {
ResourceEntity,
UIPermission,
} from '../components/PermissionProvider/PermissionProvider.interface';
import { Operation } from '../generated/entity/policies/accessControl/rule';
import { checkPermission } from '../utils/PermissionsUtils';
import { userPermissions } from '../utils/PermissionsUtils';
export interface MenuListItem {
label: string;
@ -56,17 +55,16 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Teams',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TEAM,
permissions
),
icon: <TeamsIcon className="side-panel-icons" />,
},
{
label: 'Users',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.USER,
permissions
),
@ -74,8 +72,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Admins',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.USER,
permissions
),
@ -88,8 +85,7 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Roles',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.ROLE,
permissions
),
@ -97,8 +93,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Policies',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.POLICY,
permissions
),
@ -111,8 +106,7 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Databases',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.DATABASE_SERVICE,
permissions
),
@ -120,8 +114,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Messaging',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.MESSAGING_SERVICE,
permissions
),
@ -129,8 +122,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Dashboards',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.DASHBOARD_SERVICE,
permissions
),
@ -138,8 +130,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Pipelines',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.PIPELINE_SERVICE,
permissions
),
@ -147,8 +138,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'ML Models',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.ML_MODEL_SERVICE,
permissions
),
@ -161,8 +151,7 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Test Suite',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TEST_SUITE,
permissions
),
@ -175,8 +164,7 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Activity Feed',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.FEED,
permissions
),
@ -189,8 +177,7 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Tables',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TYPE,
permissions
),
@ -198,8 +185,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Topics',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TYPE,
permissions
),
@ -207,8 +193,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Dashboards',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TYPE,
permissions
),
@ -216,8 +201,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Pipelines',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TYPE,
permissions
),
@ -225,8 +209,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'ML Models',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.TYPE,
permissions
),
@ -239,8 +222,7 @@ export const getGlobalSettingsMenuWithPermission = (
items: [
{
label: 'Webhook',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.WEBHOOK,
permissions
),
@ -248,8 +230,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Slack',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.WEBHOOK,
permissions
),
@ -257,8 +238,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'MS Teams',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.WEBHOOK,
permissions
),
@ -266,8 +246,7 @@ export const getGlobalSettingsMenuWithPermission = (
},
{
label: 'Bots',
isProtected: checkPermission(
Operation.ViewAll,
isProtected: userPermissions.hasViewPermissions(
ResourceEntity.BOT,
permissions
),

View File

@ -119,6 +119,16 @@ export const getUIPermission = (
}, {} as UIPermission);
};
export const userPermissions = {
/* A util function's that checks if the user has permission to view the resource. */
hasViewPermissions: (
resourceEntityType: ResourceEntity,
permissions: UIPermission
) =>
checkPermission(Operation.ViewBasic, resourceEntityType, permissions) ||
checkPermission(Operation.ViewAll, resourceEntityType, permissions),
};
export const DEFAULT_ENTITY_PERMISSION = {
Create: false,
Delete: false,
@ -135,6 +145,7 @@ export const DEFAULT_ENTITY_PERMISSION = {
EditTests: false,
EditTier: false,
ViewAll: false,
ViewBasic: false,
ViewDataProfile: false,
ViewQueries: false,
ViewSampleData: false,