feat: add permission to catalog create and refresh buttion

Signed-off-by: rui ma <ruima@alauda.io>
This commit is contained in:
rui ma
2023-12-01 10:59:18 +08:00
parent 316fa0d569
commit 4785d0561e
9 changed files with 109 additions and 7 deletions
+1
View File
@@ -33,6 +33,7 @@
"@backstage/catalog-model": "workspace:^",
"@backstage/core-components": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
"@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-react": "workspace:^",
"@backstage/theme": "workspace:^",
"@material-ui/core": "^4.12.2",
@@ -54,6 +54,8 @@ import EditIcon from '@material-ui/icons/Edit';
import EmailIcon from '@material-ui/icons/Email';
import GroupIcon from '@material-ui/icons/Group';
import { LinksGroup } from '../../Meta';
import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha';
import { catalogEntityRefreshPermission } from '@backstage/plugin-catalog-common/alpha';
const CardTitle = (props: { title: string }) => (
<Box display="flex" alignItems="center">
@@ -70,6 +72,9 @@ export const GroupProfileCard = (props: {
const catalogApi = useApi(catalogApiRef);
const alertApi = useApi(alertApiRef);
const { entity: group } = useEntity<GroupEntity>();
const { allowed: canRefresh } = useEntityPermission(
catalogEntityRefreshPermission,
);
const refreshEntity = useCallback(async () => {
await catalogApi.refreshEntity(stringifyEntityRef(group));
@@ -127,7 +132,7 @@ export const GroupProfileCard = (props: {
variant={props.variant}
action={
<>
{allowRefresh && (
{allowRefresh && canRefresh && (
<IconButton
aria-label="Refresh"
title="Schedule entity refresh"