mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-09 00:18:00 +01:00
fix: PAT secret no longer returned (except new), use id instead (#2162)
* fix: PAT secret no longer returned (except new), use id instead * fix types
This commit is contained in:
parent
c105ca02f1
commit
dc2f611257
@ -12,7 +12,7 @@ import SelectMenu from 'component/common/select';
|
|||||||
import { formatDateYMD } from 'utils/formatDate';
|
import { formatDateYMD } from 'utils/formatDate';
|
||||||
import { useLocationSettings } from 'hooks/useLocationSettings';
|
import { useLocationSettings } from 'hooks/useLocationSettings';
|
||||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||||
import { IPersonalAPIToken } from 'interfaces/personalAPIToken';
|
import { INewPersonalAPIToken } from 'interfaces/personalAPIToken';
|
||||||
|
|
||||||
const StyledForm = styled('form')(() => ({
|
const StyledForm = styled('form')(() => ({
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
@ -85,7 +85,7 @@ const expirationOptions = [
|
|||||||
interface ICreatePersonalAPITokenProps {
|
interface ICreatePersonalAPITokenProps {
|
||||||
open: boolean;
|
open: boolean;
|
||||||
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
||||||
newToken: (token: IPersonalAPIToken) => void;
|
newToken: (token: INewPersonalAPIToken) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CreatePersonalAPIToken: FC<ICreatePersonalAPITokenProps> = ({
|
export const CreatePersonalAPIToken: FC<ICreatePersonalAPITokenProps> = ({
|
||||||
|
@ -25,7 +25,7 @@ export const DeletePersonalAPIToken: FC<IDeletePersonalAPITokenProps> = ({
|
|||||||
const onRemoveClick = async () => {
|
const onRemoveClick = async () => {
|
||||||
if (token) {
|
if (token) {
|
||||||
try {
|
try {
|
||||||
await deletePersonalAPIToken(token?.secret);
|
await deletePersonalAPIToken(token?.id);
|
||||||
refetchTokens();
|
refetchTokens();
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
setToastData({
|
setToastData({
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Alert, styled, Typography } from '@mui/material';
|
import { Alert, styled, Typography } from '@mui/material';
|
||||||
import { UserToken } from 'component/admin/apiToken/ConfirmToken/UserToken/UserToken';
|
import { UserToken } from 'component/admin/apiToken/ConfirmToken/UserToken/UserToken';
|
||||||
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
||||||
import { IPersonalAPIToken } from 'interfaces/personalAPIToken';
|
import { INewPersonalAPIToken } from 'interfaces/personalAPIToken';
|
||||||
import { FC } from 'react';
|
import { FC } from 'react';
|
||||||
|
|
||||||
const StyledAlert = styled(Alert)(({ theme }) => ({
|
const StyledAlert = styled(Alert)(({ theme }) => ({
|
||||||
@ -11,7 +11,7 @@ const StyledAlert = styled(Alert)(({ theme }) => ({
|
|||||||
interface IPersonalAPITokenDialogProps {
|
interface IPersonalAPITokenDialogProps {
|
||||||
open: boolean;
|
open: boolean;
|
||||||
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
||||||
token?: IPersonalAPIToken;
|
token?: INewPersonalAPIToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const PersonalAPITokenDialog: FC<IPersonalAPITokenDialogProps> = ({
|
export const PersonalAPITokenDialog: FC<IPersonalAPITokenDialogProps> = ({
|
||||||
|
@ -17,11 +17,13 @@ import { TablePlaceholder, VirtualizedTable } from 'component/common/Table';
|
|||||||
import { ActionCell } from 'component/common/Table/cells/ActionCell/ActionCell';
|
import { ActionCell } from 'component/common/Table/cells/ActionCell/ActionCell';
|
||||||
import { DateCell } from 'component/common/Table/cells/DateCell/DateCell';
|
import { DateCell } from 'component/common/Table/cells/DateCell/DateCell';
|
||||||
import { HighlightCell } from 'component/common/Table/cells/HighlightCell/HighlightCell';
|
import { HighlightCell } from 'component/common/Table/cells/HighlightCell/HighlightCell';
|
||||||
import { TimeAgoCell } from 'component/common/Table/cells/TimeAgoCell/TimeAgoCell';
|
|
||||||
import { SearchHighlightProvider } from 'component/common/Table/SearchHighlightContext/SearchHighlightContext';
|
import { SearchHighlightProvider } from 'component/common/Table/SearchHighlightContext/SearchHighlightContext';
|
||||||
import { usePersonalAPITokens } from 'hooks/api/getters/usePersonalAPITokens/usePersonalAPITokens';
|
import { usePersonalAPITokens } from 'hooks/api/getters/usePersonalAPITokens/usePersonalAPITokens';
|
||||||
import { useSearch } from 'hooks/useSearch';
|
import { useSearch } from 'hooks/useSearch';
|
||||||
import { IPersonalAPIToken } from 'interfaces/personalAPIToken';
|
import {
|
||||||
|
INewPersonalAPIToken,
|
||||||
|
IPersonalAPIToken,
|
||||||
|
} from 'interfaces/personalAPIToken';
|
||||||
import { IUser } from 'interfaces/user';
|
import { IUser } from 'interfaces/user';
|
||||||
import { useEffect, useMemo, useState } from 'react';
|
import { useEffect, useMemo, useState } from 'react';
|
||||||
import { useSearchParams } from 'react-router-dom';
|
import { useSearchParams } from 'react-router-dom';
|
||||||
@ -99,6 +101,7 @@ export const PersonalAPITokensTab = ({ user }: IPersonalAPITokensTabProps) => {
|
|||||||
const [createOpen, setCreateOpen] = useState(false);
|
const [createOpen, setCreateOpen] = useState(false);
|
||||||
const [dialogOpen, setDialogOpen] = useState(false);
|
const [dialogOpen, setDialogOpen] = useState(false);
|
||||||
const [deleteOpen, setDeleteOpen] = useState(false);
|
const [deleteOpen, setDeleteOpen] = useState(false);
|
||||||
|
const [newToken, setNewToken] = useState<INewPersonalAPIToken>();
|
||||||
const [selectedToken, setSelectedToken] = useState<IPersonalAPIToken>();
|
const [selectedToken, setSelectedToken] = useState<IPersonalAPIToken>();
|
||||||
|
|
||||||
const columns = useMemo(
|
const columns = useMemo(
|
||||||
@ -309,15 +312,15 @@ export const PersonalAPITokensTab = ({ user }: IPersonalAPITokensTabProps) => {
|
|||||||
<CreatePersonalAPIToken
|
<CreatePersonalAPIToken
|
||||||
open={createOpen}
|
open={createOpen}
|
||||||
setOpen={setCreateOpen}
|
setOpen={setCreateOpen}
|
||||||
newToken={(token: IPersonalAPIToken) => {
|
newToken={(token: INewPersonalAPIToken) => {
|
||||||
setSelectedToken(token);
|
setNewToken(token);
|
||||||
setDialogOpen(true);
|
setDialogOpen(true);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<PersonalAPITokenDialog
|
<PersonalAPITokenDialog
|
||||||
open={dialogOpen}
|
open={dialogOpen}
|
||||||
setOpen={setDialogOpen}
|
setOpen={setDialogOpen}
|
||||||
token={selectedToken}
|
token={newToken}
|
||||||
/>
|
/>
|
||||||
<DeletePersonalAPIToken
|
<DeletePersonalAPIToken
|
||||||
open={deleteOpen}
|
open={deleteOpen}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { INewPersonalAPIToken } from 'interfaces/personalAPIToken';
|
||||||
import useAPI from '../useApi/useApi';
|
import useAPI from '../useApi/useApi';
|
||||||
|
|
||||||
interface ICreatePersonalApiTokenPayload {
|
interface ICreatePersonalApiTokenPayload {
|
||||||
@ -12,7 +13,7 @@ export const usePersonalAPITokensApi = () => {
|
|||||||
|
|
||||||
const createPersonalAPIToken = async (
|
const createPersonalAPIToken = async (
|
||||||
payload: ICreatePersonalApiTokenPayload
|
payload: ICreatePersonalApiTokenPayload
|
||||||
) => {
|
): Promise<INewPersonalAPIToken> => {
|
||||||
const req = createRequest('api/admin/user/tokens', {
|
const req = createRequest('api/admin/user/tokens', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify(payload),
|
body: JSON.stringify(payload),
|
||||||
@ -25,8 +26,8 @@ export const usePersonalAPITokensApi = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const deletePersonalAPIToken = async (secret: string) => {
|
const deletePersonalAPIToken = async (id: string) => {
|
||||||
const req = createRequest(`api/admin/user/tokens/${secret}`, {
|
const req = createRequest(`api/admin/user/tokens/${id}`, {
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
export interface IPersonalAPIToken {
|
export interface IPersonalAPIToken {
|
||||||
|
id: string;
|
||||||
description: string;
|
description: string;
|
||||||
expiresAt: string;
|
expiresAt: string;
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface INewPersonalAPIToken extends IPersonalAPIToken {
|
||||||
secret: string;
|
secret: string;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user