mirror of
https://github.com/logto-io/logto.git
synced 2025-03-31 22:51:25 -05:00
feat(console): disallow management api deletion and renaming (#1233)
This commit is contained in:
parent
dbd9a713c5
commit
568b75dffc
1 changed files with 34 additions and 28 deletions
|
@ -1,4 +1,5 @@
|
|||
import { AppearanceMode, Resource } from '@logto/schemas';
|
||||
import { managementResource } from '@logto/schemas/lib/seeds';
|
||||
import classNames from 'classnames';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
|
@ -45,6 +46,8 @@ const ApiResourceDetails = () => {
|
|||
const theme = useTheme();
|
||||
const Icon = theme === AppearanceMode.LightMode ? ApiResource : ApiResourceDark;
|
||||
|
||||
const isLogtoManagementApiResource = data?.id === managementResource.id;
|
||||
|
||||
const {
|
||||
handleSubmit,
|
||||
register,
|
||||
|
@ -97,35 +100,37 @@ const ApiResourceDetails = () => {
|
|||
<CopyToClipboard value={data.indicator} />
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.operations}>
|
||||
<ActionMenu
|
||||
buttonProps={{ icon: <More className={styles.moreIcon} />, size: 'large' }}
|
||||
title={t('api_resource_details.more_options')}
|
||||
>
|
||||
<ActionMenuItem
|
||||
icon={<Delete />}
|
||||
type="danger"
|
||||
onClick={() => {
|
||||
setIsDeleteFormOpen(true);
|
||||
}}
|
||||
{!isLogtoManagementApiResource && (
|
||||
<div className={styles.operations}>
|
||||
<ActionMenu
|
||||
buttonProps={{ icon: <More className={styles.moreIcon} />, size: 'large' }}
|
||||
title={t('api_resource_details.more_options')}
|
||||
>
|
||||
{t('api_resource_details.options_delete')}
|
||||
</ActionMenuItem>
|
||||
</ActionMenu>
|
||||
<Modal
|
||||
isOpen={isDeleteFormOpen}
|
||||
className={modalStyles.content}
|
||||
overlayClassName={modalStyles.overlay}
|
||||
>
|
||||
<DeleteForm
|
||||
id={data.id}
|
||||
name={data.name}
|
||||
onClose={() => {
|
||||
setIsDeleteFormOpen(false);
|
||||
}}
|
||||
/>
|
||||
</Modal>
|
||||
</div>
|
||||
<ActionMenuItem
|
||||
icon={<Delete />}
|
||||
type="danger"
|
||||
onClick={() => {
|
||||
setIsDeleteFormOpen(true);
|
||||
}}
|
||||
>
|
||||
{t('api_resource_details.options_delete')}
|
||||
</ActionMenuItem>
|
||||
</ActionMenu>
|
||||
<Modal
|
||||
isOpen={isDeleteFormOpen}
|
||||
className={modalStyles.content}
|
||||
overlayClassName={modalStyles.overlay}
|
||||
>
|
||||
<DeleteForm
|
||||
id={data.id}
|
||||
name={data.name}
|
||||
onClose={() => {
|
||||
setIsDeleteFormOpen(false);
|
||||
}}
|
||||
/>
|
||||
</Modal>
|
||||
</div>
|
||||
)}
|
||||
</Card>
|
||||
<Card className={classNames(styles.body, detailsStyles.body)}>
|
||||
<TabNav>
|
||||
|
@ -141,6 +146,7 @@ const ApiResourceDetails = () => {
|
|||
<TextInput
|
||||
{...register('name', { required: true })}
|
||||
hasError={Boolean(errors.name)}
|
||||
readOnly={isLogtoManagementApiResource}
|
||||
/>
|
||||
</FormField>
|
||||
<FormField
|
||||
|
|
Loading…
Add table
Reference in a new issue