mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-04 04:26:11 +00:00
improvements: address feedback
This commit is contained in:
@@ -149,6 +149,9 @@ const SECRET_SCANNING_APP_CONNECTION_MAP = Object.fromEntries(
|
|||||||
Object.entries(SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP).map(([key, value]) => [value, key])
|
Object.entries(SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP).map(([key, value]) => [value, key])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// scott: ideally this would be derived from a utilized map like the above
|
||||||
|
const PKI_APP_CONNECTIONS = [AppConnection.AWS, AppConnection.Cloudflare, AppConnection.AzureADCS];
|
||||||
|
|
||||||
export const listAppConnectionOptions = (projectType?: ProjectType) => {
|
export const listAppConnectionOptions = (projectType?: ProjectType) => {
|
||||||
return [
|
return [
|
||||||
getAwsConnectionListItem(),
|
getAwsConnectionListItem(),
|
||||||
@@ -200,11 +203,7 @@ export const listAppConnectionOptions = (projectType?: ProjectType) => {
|
|||||||
case ProjectType.SecretScanning:
|
case ProjectType.SecretScanning:
|
||||||
return Boolean(SECRET_SCANNING_APP_CONNECTION_MAP[option.app]);
|
return Boolean(SECRET_SCANNING_APP_CONNECTION_MAP[option.app]);
|
||||||
case ProjectType.CertificateManager:
|
case ProjectType.CertificateManager:
|
||||||
return (
|
return PKI_APP_CONNECTIONS.includes(option.app);
|
||||||
option.app === AppConnection.AWS ||
|
|
||||||
option.app === AppConnection.Cloudflare ||
|
|
||||||
option.app === AppConnection.AzureADCS
|
|
||||||
);
|
|
||||||
case ProjectType.KMS:
|
case ProjectType.KMS:
|
||||||
return false;
|
return false;
|
||||||
case ProjectType.SSH:
|
case ProjectType.SSH:
|
||||||
|
|||||||
@@ -27,18 +27,20 @@ type ContentProps = {
|
|||||||
selectedRotation: SecretRotation | null;
|
selectedRotation: SecretRotation | null;
|
||||||
setSelectedRotation: (selectedRotation: SecretRotation | null) => void;
|
setSelectedRotation: (selectedRotation: SecretRotation | null) => void;
|
||||||
initialFormData?: Partial<TSecretRotationV2Form>;
|
initialFormData?: Partial<TSecretRotationV2Form>;
|
||||||
|
onCancel: () => void;
|
||||||
} & SharedProps;
|
} & SharedProps;
|
||||||
|
|
||||||
const Content = ({
|
const Content = ({
|
||||||
setSelectedRotation,
|
setSelectedRotation,
|
||||||
selectedRotation,
|
selectedRotation,
|
||||||
initialFormData,
|
initialFormData,
|
||||||
|
onCancel,
|
||||||
...props
|
...props
|
||||||
}: ContentProps) => {
|
}: ContentProps) => {
|
||||||
if (selectedRotation) {
|
if (selectedRotation) {
|
||||||
return (
|
return (
|
||||||
<SecretRotationV2Form
|
<SecretRotationV2Form
|
||||||
onCancel={() => setSelectedRotation(null)}
|
onCancel={onCancel}
|
||||||
type={selectedRotation}
|
type={selectedRotation}
|
||||||
initialFormData={initialFormData}
|
initialFormData={initialFormData}
|
||||||
{...props}
|
{...props}
|
||||||
@@ -93,13 +95,17 @@ export const CreateSecretRotationV2Modal = ({ onOpenChange, isOpen, ...props }:
|
|||||||
}
|
}
|
||||||
}, [connectionId, connectionName]);
|
}, [connectionId, connectionName]);
|
||||||
|
|
||||||
|
const handleReset = () => {
|
||||||
|
setSelectedRotation(null);
|
||||||
|
setInitialFormData(undefined);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
isOpen={isOpen}
|
isOpen={isOpen}
|
||||||
onOpenChange={(open) => {
|
onOpenChange={(open) => {
|
||||||
if (!open) {
|
if (!open) {
|
||||||
setSelectedRotation(null);
|
handleReset();
|
||||||
setInitialFormData(undefined);
|
|
||||||
}
|
}
|
||||||
onOpenChange(open);
|
onOpenChange(open);
|
||||||
}}
|
}}
|
||||||
@@ -137,9 +143,10 @@ export const CreateSecretRotationV2Modal = ({ onOpenChange, isOpen, ...props }:
|
|||||||
>
|
>
|
||||||
<Content
|
<Content
|
||||||
onComplete={() => {
|
onComplete={() => {
|
||||||
setSelectedRotation(null);
|
handleReset();
|
||||||
onOpenChange(false);
|
onOpenChange(false);
|
||||||
}}
|
}}
|
||||||
|
onCancel={handleReset}
|
||||||
initialFormData={initialFormData}
|
initialFormData={initialFormData}
|
||||||
selectedRotation={selectedRotation}
|
selectedRotation={selectedRotation}
|
||||||
setSelectedRotation={setSelectedRotation}
|
setSelectedRotation={setSelectedRotation}
|
||||||
|
|||||||
@@ -24,16 +24,18 @@ type ContentProps = {
|
|||||||
selectedDataSource: SecretScanningDataSource | null;
|
selectedDataSource: SecretScanningDataSource | null;
|
||||||
setSelectedDataSource: (selectedDataSource: SecretScanningDataSource | null) => void;
|
setSelectedDataSource: (selectedDataSource: SecretScanningDataSource | null) => void;
|
||||||
initialFormData?: Partial<TSecretScanningDataSourceForm>;
|
initialFormData?: Partial<TSecretScanningDataSourceForm>;
|
||||||
|
onCancel: () => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
const Content = ({ setSelectedDataSource, selectedDataSource, ...props }: ContentProps) => {
|
const Content = ({
|
||||||
|
setSelectedDataSource,
|
||||||
|
selectedDataSource,
|
||||||
|
onCancel,
|
||||||
|
...props
|
||||||
|
}: ContentProps) => {
|
||||||
if (selectedDataSource) {
|
if (selectedDataSource) {
|
||||||
return (
|
return (
|
||||||
<SecretScanningDataSourceForm
|
<SecretScanningDataSourceForm onCancel={onCancel} type={selectedDataSource} {...props} />
|
||||||
onCancel={() => setSelectedDataSource(null)}
|
|
||||||
type={selectedDataSource}
|
|
||||||
{...props}
|
|
||||||
/>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,11 +88,18 @@ export const CreateSecretScanningDataSourceModal = ({ onOpenChange, isOpen, ...p
|
|||||||
}
|
}
|
||||||
}, [connectionId, connectionName]);
|
}, [connectionId, connectionName]);
|
||||||
|
|
||||||
|
const resetModal = () => {
|
||||||
|
setSelectedDataSource(null);
|
||||||
|
setInitialFormData(undefined);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
isOpen={isOpen}
|
isOpen={isOpen}
|
||||||
onOpenChange={(open) => {
|
onOpenChange={(open) => {
|
||||||
if (!open) setSelectedDataSource(null);
|
if (!open) {
|
||||||
|
resetModal();
|
||||||
|
}
|
||||||
onOpenChange(open);
|
onOpenChange(open);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -127,9 +136,10 @@ export const CreateSecretScanningDataSourceModal = ({ onOpenChange, isOpen, ...p
|
|||||||
>
|
>
|
||||||
<Content
|
<Content
|
||||||
onComplete={() => {
|
onComplete={() => {
|
||||||
setSelectedDataSource(null);
|
resetModal();
|
||||||
onOpenChange(false);
|
onOpenChange(false);
|
||||||
}}
|
}}
|
||||||
|
onCancel={resetModal}
|
||||||
selectedDataSource={selectedDataSource}
|
selectedDataSource={selectedDataSource}
|
||||||
setSelectedDataSource={setSelectedDataSource}
|
setSelectedDataSource={setSelectedDataSource}
|
||||||
initialFormData={initialFormData}
|
initialFormData={initialFormData}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import { RequestProjectAccessModal } from "@app/components/projects";
|
|||||||
import { AccessRestrictedBanner, Button } from "@app/components/v2";
|
import { AccessRestrictedBanner, Button } from "@app/components/v2";
|
||||||
import { OrgPermissionSubjects } from "@app/context";
|
import { OrgPermissionSubjects } from "@app/context";
|
||||||
import { OrgPermissionAdminConsoleAction } from "@app/context/OrgPermissionContext/types";
|
import { OrgPermissionAdminConsoleAction } from "@app/context/OrgPermissionContext/types";
|
||||||
import { getProjectHomePage } from "@app/helpers/project";
|
|
||||||
import { usePopUp } from "@app/hooks";
|
import { usePopUp } from "@app/hooks";
|
||||||
import { useOrgAdminAccessProject, useSearchProjects } from "@app/hooks/api";
|
import { useOrgAdminAccessProject, useSearchProjects } from "@app/hooks/api";
|
||||||
|
|
||||||
@@ -41,10 +40,7 @@ export const ProjectAccessError = () => {
|
|||||||
projectId: project.id
|
projectId: project.id
|
||||||
});
|
});
|
||||||
await navigate({
|
await navigate({
|
||||||
to: getProjectHomePage(project.type, project.environments),
|
to: "."
|
||||||
params: {
|
|
||||||
projectId: project.id
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
|
|||||||
Reference in New Issue
Block a user