diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.component.tsx index 205f06dd255..bc7b4a74a7e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.component.tsx @@ -16,11 +16,13 @@ import classNames from 'classnames'; import { CustomPropertyTable } from 'components/common/CustomPropertyTable/CustomPropertyTable'; import { CustomPropertyProps } from 'components/common/CustomPropertyTable/CustomPropertyTable.interface'; import DescriptionV1 from 'components/common/description/DescriptionV1'; +import ErrorPlaceHolder from 'components/common/error-with-placeholder/ErrorPlaceHolder'; import DataAssetsVersionHeader from 'components/DataAssets/DataAssetsVersionHeader/DataAssetsVersionHeader'; import TabsLabel from 'components/TabsLabel/TabsLabel.component'; import TagsContainerV1 from 'components/Tag/TagsContainerV1/TagsContainerV1'; import { getVersionPathWithTab } from 'constants/constants'; import { EntityField } from 'constants/Feeds.constants'; +import { ERROR_PLACEHOLDER_TYPE } from 'enums/common.enum'; import { ChangeDescription, Column, @@ -57,6 +59,7 @@ const ContainerVersion: React.FC = ({ deleted = false, backHandler, versionHandler, + entityPermissions, }: ContainerVersionProp) => { const { t } = useTranslation(); const history = useHistory(); @@ -174,7 +177,9 @@ const ContainerVersion: React.FC = ({ name={t('label.custom-property-plural')} /> ), - children: ( + children: !entityPermissions.ViewAll ? ( + + ) : ( = ({ ), }, ], - [description, containerFQN, columns, currentVersionData] + [description, containerFQN, columns, currentVersionData, entityPermissions] ); + if (!(entityPermissions.ViewAll || entityPermissions.ViewBasic)) { + return ; + } + return ( <> {isVersionLoading ? ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.interface.ts index 20dcfd3d9d3..d929ac335e2 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/ContainerVersion/ContainerVersion.interface.ts @@ -10,6 +10,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { OperationPermission } from 'components/PermissionProvider/PermissionProvider.interface'; import { Container } from 'generated/entity/data/container'; import { VersionData } from 'pages/EntityVersionPage/EntityVersionPage.component'; import { EntityHistory } from '../../generated/type/entityHistory'; @@ -28,4 +29,5 @@ export interface ContainerVersionProp { deleted?: boolean; backHandler: () => void; versionHandler: (v: string) => void; + entityPermissions: OperationPermission; } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.component.tsx index dd58878d4a8..9a70041a398 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.component.tsx @@ -18,11 +18,13 @@ import classNames from 'classnames'; import { CustomPropertyTable } from 'components/common/CustomPropertyTable/CustomPropertyTable'; import { CustomPropertyProps } from 'components/common/CustomPropertyTable/CustomPropertyTable.interface'; import DescriptionV1 from 'components/common/description/DescriptionV1'; +import ErrorPlaceHolder from 'components/common/error-with-placeholder/ErrorPlaceHolder'; import DataAssetsVersionHeader from 'components/DataAssets/DataAssetsVersionHeader/DataAssetsVersionHeader'; import TabsLabel from 'components/TabsLabel/TabsLabel.component'; import TagsContainerV1 from 'components/Tag/TagsContainerV1/TagsContainerV1'; import { getVersionPathWithTab } from 'constants/constants'; import { EntityField } from 'constants/Feeds.constants'; +import { ERROR_PLACEHOLDER_TYPE } from 'enums/common.enum'; import { EntityTabs, EntityType } from 'enums/entity.enum'; import { TagSource } from 'generated/type/tagLabel'; import React, { FC, useEffect, useMemo, useState } from 'react'; @@ -55,6 +57,7 @@ const DashboardVersion: FC = ({ deleted = false, backHandler, versionHandler, + entityPermissions, }: DashboardVersionProp) => { const { t } = useTranslation(); const history = useHistory(); @@ -216,7 +219,9 @@ const DashboardVersion: FC = ({ name={t('label.custom-property-plural')} /> ), - children: ( + children: !entityPermissions.ViewAll ? ( + + ) : ( = ({ ), }, ], - [description, tableColumn, currentVersionData] + [description, tableColumn, currentVersionData, entityPermissions] ); + if (!(entityPermissions.ViewAll || entityPermissions.ViewBasic)) { + return ; + } + return ( <>
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.interface.ts index 244c1c841fa..1479ec717a9 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/DashboardVersion.interface.ts @@ -11,6 +11,7 @@ * limitations under the License. */ +import { OperationPermission } from 'components/PermissionProvider/PermissionProvider.interface'; import { VersionData } from 'pages/EntityVersionPage/EntityVersionPage.component'; import { Dashboard } from '../../generated/entity/data/dashboard'; import { EntityHistory } from '../../generated/type/entityHistory'; @@ -29,4 +30,5 @@ export interface DashboardVersionProp { deleted?: boolean; backHandler: () => void; versionHandler: (v: string) => void; + entityPermissions: OperationPermission; } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/dashboardVersion.mock.ts b/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/dashboardVersion.mock.ts index 9d03afdbcbe..5f0e5484bb5 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/dashboardVersion.mock.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/DashboardVersion/dashboardVersion.mock.ts @@ -103,6 +103,7 @@ export const dashboardVersionProps = { ], }, deleted: false, + entityPermissions: { ViewAll: true }, } as unknown as DashboardVersionProp; export const mockTagChangeVersion = { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetsHeader/DataAssetsHeader.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetsHeader/DataAssetsHeader.component.tsx index baa734f9f6c..8769024a71b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetsHeader/DataAssetsHeader.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetsHeader/DataAssetsHeader.component.tsx @@ -33,7 +33,6 @@ import EntityHeaderTitle from 'components/Entity/EntityHeaderTitle/EntityHeaderT import { useTourProvider } from 'components/TourProvider/TourProvider'; import { FQN_SEPARATOR_CHAR } from 'constants/char.constants'; import { DE_ACTIVE_COLOR, getDashboardDetailsPath } from 'constants/constants'; -import { NO_PERMISSION_FOR_ACTION } from 'constants/HelperTextUtil'; import { EntityTabs, EntityType } from 'enums/entity.enum'; import { Container } from 'generated/entity/data/container'; import { Dashboard } from 'generated/entity/data/dashboard'; @@ -48,9 +47,9 @@ import { ThreadType, } from 'generated/entity/feed/thread'; import { useClipboard } from 'hooks/useClipBoard'; -import { t } from 'i18next'; import { isEmpty, isUndefined } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { useHistory } from 'react-router-dom'; import { getActiveAnnouncement, getFeedCount } from 'rest/feedsAPI'; import { getCurrentUserId, getEntityDetailLink } from 'utils/CommonUtils'; @@ -120,6 +119,7 @@ export const DataAssetsHeader = ({ onDisplayNameUpdate, }: DataAssetsHeaderProps) => { const USERId = getCurrentUserId(); + const { t } = useTranslation(); const { isTourPage } = useTourProvider(); const { onCopyToClipBoard } = useClipboard(window.location.href); const [taskCount, setTaskCount] = useState(0); @@ -182,7 +182,7 @@ export const DataAssetsHeader = ({ }; useEffect(() => { - if (!isTourPage) { + if (dataAsset.fullyQualifiedName && !isTourPage) { fetchActiveAnnouncement(); fetchTaskCount(); } @@ -194,46 +194,6 @@ export const DataAssetsHeader = ({ breadcrumbs: [], }; switch (entityType) { - default: - case EntityType.TABLE: - const tableDetails = dataAsset as Table; - - returnData.extraInfo = ( - <> - {tableDetails.tableType && ( - - )} - {tableDetails?.usageSummary && ( - - )} - {tableDetails?.profile?.columnCount && ( - - )} - {tableDetails?.profile?.rowCount && ( - - )} - - ); - - returnData.breadcrumbs = getBreadcrumbForTable(tableDetails); - - break; - case EntityType.TOPIC: const topicDetails = dataAsset as Topic; returnData.breadcrumbs = @@ -402,6 +362,46 @@ export const DataAssetsHeader = ({ getBreadcrumbForEntitiesWithServiceOnly(dataModelDetails); break; + + case EntityType.TABLE: + default: + const tableDetails = dataAsset as Table; + + returnData.extraInfo = ( + <> + {tableDetails.tableType && ( + + )} + {tableDetails?.usageSummary && ( + + )} + {tableDetails?.profile?.columnCount && ( + + )} + {tableDetails?.profile?.rowCount && ( + + )} + + ); + + returnData.breadcrumbs = getBreadcrumbForTable(tableDetails); + + break; } return returnData; @@ -467,13 +467,8 @@ export const DataAssetsHeader = ({ })} )} - + + {(permissions.EditAll || permissions.EditTags) && (