mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-17 03:38:18 +00:00
* Fix #7648 UI : Add ViewBasic operation for resources * Minor change
This commit is contained in:
parent
6fb2b87a29
commit
3c809d3426
@ -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
|
||||
),
|
||||
|
@ -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', () => ({
|
||||
|
@ -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"
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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) => {
|
||||
|
@ -848,7 +848,8 @@ const TeamDetailsV1 = ({
|
||||
);
|
||||
};
|
||||
|
||||
const viewPermission = entityPermissions.ViewAll;
|
||||
const viewPermission =
|
||||
entityPermissions.ViewAll || entityPermissions.ViewBasic;
|
||||
|
||||
return viewPermission ? (
|
||||
<div
|
||||
|
@ -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}>
|
||||
|
@ -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
|
||||
),
|
||||
|
@ -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(() => {
|
||||
|
@ -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>
|
||||
|
@ -72,7 +72,7 @@ const CustomEntityDetailV1 = () => {
|
||||
};
|
||||
|
||||
const viewPermission = useMemo(
|
||||
() => propertyPermission.ViewAll,
|
||||
() => propertyPermission.ViewAll || propertyPermission.ViewBasic,
|
||||
[propertyPermission, tab]
|
||||
);
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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"
|
||||
|
@ -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}
|
||||
|
@ -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>
|
||||
|
@ -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]);
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}`}>
|
||||
|
@ -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', () => ({
|
||||
|
@ -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]);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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]);
|
||||
|
||||
|
@ -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}>
|
||||
|
@ -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}
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
);
|
||||
|
||||
|
@ -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
|
||||
)}
|
||||
|
@ -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
|
||||
),
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user