mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-11 12:29:26 +00:00
feat(pam): ui improvements
This commit is contained in:
@@ -19,12 +19,44 @@ export const PamAccessAccountModal = ({ isOpen, onOpenChange, account }: Props)
|
|||||||
|
|
||||||
const isDurationValid = useMemo(() => duration && ms(duration || "1s") > 0, [duration]);
|
const isDurationValid = useMemo(() => duration && ms(duration || "1s") > 0, [duration]);
|
||||||
|
|
||||||
|
const cliDuration = useMemo(() => {
|
||||||
|
if (!duration) return duration;
|
||||||
|
|
||||||
|
const unit = duration.replace(/[\d\s.-]/g, "");
|
||||||
|
|
||||||
|
const dayOrLargerUnits = [
|
||||||
|
"d",
|
||||||
|
"day",
|
||||||
|
"days",
|
||||||
|
"w",
|
||||||
|
"week",
|
||||||
|
"weeks",
|
||||||
|
"y",
|
||||||
|
"yr",
|
||||||
|
"yrs",
|
||||||
|
"year",
|
||||||
|
"years"
|
||||||
|
];
|
||||||
|
|
||||||
|
if (unit === "M" || dayOrLargerUnits.includes(unit.toLowerCase())) {
|
||||||
|
const valueInMs = ms(duration);
|
||||||
|
const oneHourInMs = 1000 * 60 * 60;
|
||||||
|
|
||||||
|
if (typeof valueInMs === "number" && valueInMs > 0) {
|
||||||
|
const hours = valueInMs / oneHourInMs;
|
||||||
|
return `${hours}h`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return duration;
|
||||||
|
}, [duration]);
|
||||||
|
|
||||||
const command = useMemo(
|
const command = useMemo(
|
||||||
() =>
|
() =>
|
||||||
account && account.resource.resourceType === PamResourceType.Postgres
|
account && account.resource.resourceType === PamResourceType.Postgres
|
||||||
? `infisical pam db access-account ${account.id} --duration ${duration}`
|
? `infisical pam db access-account ${account.id} --duration ${cliDuration}`
|
||||||
: "",
|
: "",
|
||||||
[account, duration]
|
[account, cliDuration]
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!account) return null;
|
if (!account) return null;
|
||||||
@@ -48,7 +80,7 @@ export const PamAccessAccountModal = ({ isOpen, onOpenChange, account }: Props)
|
|||||||
/>
|
/>
|
||||||
<FormLabel label="CLI Command" className="mt-4" />
|
<FormLabel label="CLI Command" className="mt-4" />
|
||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
<Input value={command} isDisabled className="opacity-50" />
|
<Input value={command} isDisabled />
|
||||||
<IconButton
|
<IconButton
|
||||||
ariaLabel="copy"
|
ariaLabel="copy"
|
||||||
variant="outline_bg"
|
variant="outline_bg"
|
||||||
|
|||||||
Reference in New Issue
Block a user