Integrate catalog-import with permissions
Signed-off-by: Joon Park <joonp@spotify.com>
This commit is contained in:
@@ -5,6 +5,9 @@
|
||||
```ts
|
||||
import { Permission } from '@backstage/plugin-permission-common';
|
||||
|
||||
// @public
|
||||
export const catalogEntityCreatePermission: Permission;
|
||||
|
||||
// @public
|
||||
export const catalogEntityDeletePermission: Permission;
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
export {
|
||||
RESOURCE_TYPE_CATALOG_ENTITY,
|
||||
catalogEntityReadPermission,
|
||||
catalogEntityCreatePermission,
|
||||
catalogEntityDeletePermission,
|
||||
catalogEntityRefreshPermission,
|
||||
catalogLocationReadPermission,
|
||||
|
||||
@@ -38,6 +38,20 @@ export const catalogEntityReadPermission: Permission = {
|
||||
resourceType: RESOURCE_TYPE_CATALOG_ENTITY,
|
||||
};
|
||||
|
||||
/**
|
||||
* This permission is used to authorize actions that involve creating a new
|
||||
* catalog entity. This includes registering an existing component into the
|
||||
* catalog.
|
||||
* @public
|
||||
*/
|
||||
export const catalogEntityCreatePermission: Permission = {
|
||||
name: 'catalog.entity.create',
|
||||
attributes: {
|
||||
action: 'create',
|
||||
},
|
||||
resourceType: RESOURCE_TYPE_CATALOG_ENTITY,
|
||||
};
|
||||
|
||||
/**
|
||||
* This permission is used to designate actions that involve removing one or
|
||||
* more entities from the catalog.
|
||||
|
||||
@@ -39,7 +39,9 @@
|
||||
"@backstage/errors": "^0.2.0",
|
||||
"@backstage/integration": "^0.7.2",
|
||||
"@backstage/integration-react": "^0.1.20-next.0",
|
||||
"@backstage/plugin-catalog-common": "^0.1.1",
|
||||
"@backstage/plugin-catalog-react": "^0.6.13-next.0",
|
||||
"@backstage/plugin-permission-react": "^0.3.0",
|
||||
"@backstage/plugin-scaffolder-common": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.14",
|
||||
"@backstage/types": "^0.1.1",
|
||||
|
||||
@@ -37,6 +37,8 @@ import React, { ComponentType } from 'react';
|
||||
import { registerComponentRouteRef } from '../../routes';
|
||||
import { TemplateList } from '../TemplateList';
|
||||
import { TemplateTypePicker } from '../TemplateTypePicker';
|
||||
import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common';
|
||||
import { usePermission } from '@backstage/plugin-permission-react';
|
||||
|
||||
const useStyles = makeStyles(theme => ({
|
||||
contentWrapper: {
|
||||
@@ -72,6 +74,8 @@ export const ScaffolderPageContents = ({
|
||||
},
|
||||
};
|
||||
|
||||
const { allowed } = usePermission(catalogEntityCreatePermission);
|
||||
|
||||
return (
|
||||
<Page themeId="home">
|
||||
<Header
|
||||
@@ -85,10 +89,12 @@ export const ScaffolderPageContents = ({
|
||||
/>
|
||||
<Content>
|
||||
<ContentHeader title="Available Templates">
|
||||
<CreateButton
|
||||
title="Register Existing Component"
|
||||
to={registerComponentLink && registerComponentLink()}
|
||||
/>
|
||||
{allowed && (
|
||||
<CreateButton
|
||||
title="Register Existing Component"
|
||||
to={registerComponentLink && registerComponentLink()}
|
||||
/>
|
||||
)}
|
||||
<SupportButton>
|
||||
Create new software components using standard templates. Different
|
||||
templates create different kinds of components (services, websites,
|
||||
|
||||
Reference in New Issue
Block a user