From 56b3e7a76d5ae94e51da6d9ab056cdb0aa40508b Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Wed, 23 Apr 2025 21:09:19 -0300 Subject: [PATCH 1/9] fix(secrets-permissions): UI fix for users with edit permissions but not read secret value permission --- .../SecretOverviewTableRow/SecretEditRow.tsx | 40 +++++++++++++++-- .../SecretOverviewTableRow.tsx | 36 ++++++++++++--- .../components/SecretListView/SecretItem.tsx | 44 ++++++++++++++++--- 3 files changed, 105 insertions(+), 15 deletions(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index ddb9a99d1..d3017b202 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -87,6 +87,7 @@ export const SecretEditRow = ({ const { permission } = useProjectPermission(); const [isDeleting, setIsDeleting] = useToggle(); + const [isSecretBlurFocus, setIsSecretBlurFocus] = useToggle(false); const [isModalOpen, setIsModalOpen] = useState(false); const toggleModal = useCallback(() => { @@ -124,7 +125,14 @@ export const SecretEditRow = ({ ); } } - reset({ value }); + if (secretValueHidden) { + setTimeout(() => { + reset({ value: defaultValue || null }); + }, 0); + setIsSecretBlurFocus.off(); + } else { + reset({ value }); + } }; const canReadSecretValue = hasSecretReadValueOrDescribePermission( @@ -132,6 +140,22 @@ export const SecretEditRow = ({ ProjectPermissionSecretActions.ReadValue ); + const canEditSecretValue = permission.can( + ProjectPermissionSecretActions.Edit, + subject(ProjectPermissionSub.Secrets, { + environment, + secretPath, + secretName, + secretTags: ["*"] + }) + ); + + const handleSecretBlurClick = () => { + if (canEditSecretValue) { + setIsSecretBlurFocus.toggle(); + } + }; + const handleDeleteSecret = useCallback(async () => { setIsDeleting.on(); setIsModalOpen(false); @@ -155,8 +179,17 @@ export const SecretEditRow = ({ />
- {secretValueHidden ? ( - + {secretValueHidden && !isSecretBlurFocus ? ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions +
setIsSecretBlurFocus.off()} + > + +
) : ( )} /> diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx index 15e6753f3..78afaa021 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx @@ -1,3 +1,4 @@ +import { subject } from "@casl/ability"; import { faCircle } from "@fortawesome/free-regular-svg-icons"; import { faAngleDown, @@ -14,6 +15,11 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { twMerge } from "tailwind-merge"; import { Button, Checkbox, TableContainer, Td, Tooltip, Tr } from "@app/components/v2"; +import { useProjectPermission } from "@app/context"; +import { + ProjectPermissionSecretActions, + ProjectPermissionSub +} from "@app/context/ProjectPermissionContext/types"; import { useToggle } from "@app/hooks"; import { SecretType, SecretV3RawSanitized } from "@app/hooks/api/secrets/types"; import { WorkspaceEnv } from "@app/hooks/api/types"; @@ -64,6 +70,28 @@ export const SecretOverviewTableRow = ({ const totalCols = environments.length + 1; // secret key row const [isSecretVisible, setIsSecretVisible] = useToggle(); + const { permission } = useProjectPermission(); + + const getDefaultValue = ( + secret: SecretV3RawSanitized | undefined, + importedSecret: { secret?: SecretV3RawSanitized } | undefined + ) => { + const canEditSecretValue = permission.can( + ProjectPermissionSecretActions.Edit, + subject(ProjectPermissionSub.Secrets, { + environment: secret?.env || "", + secretPath: secret?.path || "", + secretName: secret?.key || "", + secretTags: ["*"] + }) + ); + + if (secret?.secretValueHidden) { + return canEditSecretValue ? "" : ""; + } + return secret?.valueOverride || secret?.value || importedSecret?.secret?.value || ""; + }; + return ( <> setIsFormExpanded.toggle()} className="group"> @@ -228,13 +256,7 @@ export const SecretOverviewTableRow = ({ isVisible={isSecretVisible} secretName={secretKey} secretValueHidden={secret?.secretValueHidden || false} - defaultValue={ - secret?.secretValueHidden - ? "" - : secret?.valueOverride || - secret?.value || - importedSecret?.secret?.value - } + defaultValue={getDefaultValue(secret, importedSecret)} secretId={secret?.id} isOverride={Boolean(secret?.valueOverride)} isImportedSecret={isImportedSecret} diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx index 5c431427c..135f1868c 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx @@ -94,6 +94,24 @@ export const SecretItem = memo( const { currentWorkspace } = useWorkspace(); const { permission } = useProjectPermission(); const { isRotatedSecret } = secret; + const [isSecretBlurFocus, setIsSecretBlurFocus] = useToggle(false); + + const canEditSecretValue = permission.can( + ProjectPermissionSecretActions.Edit, + subject(ProjectPermissionSub.Secrets, { + environment, + secretPath, + secretName: secret.key, + secretTags: ["*"] + }) + ); + + const getDefaultValue = () => { + if (secret.secretValueHidden) { + return canEditSecretValue ? "" : ""; + } + return secret.valueOverride || secret.value || ""; + }; const { handleSubmit, @@ -108,11 +126,11 @@ export const SecretItem = memo( } = useForm({ defaultValues: { ...secret, - value: secret.secretValueHidden ? "" : secret.value + value: getDefaultValue() }, values: { ...secret, - value: secret.secretValueHidden ? "" : secret.value + value: getDefaultValue() }, resolver: zodResolver(formSchema) }); @@ -154,6 +172,7 @@ export const SecretItem = memo( secretTags: selectedTagSlugs }) ); + const { secretValueHidden } = secret; const [isSecValueCopied, setIsSecValueCopied] = useToggle(false); @@ -169,6 +188,12 @@ export const SecretItem = memo( overrideAction === SecretActionType.Created || overrideAction === SecretActionType.Modified; const hasTagsApplied = Boolean(fields.length); + const handleSecretBlurClick = () => { + if (canEditSecretValue) { + setIsSecretBlurFocus.toggle(); + } + }; + const handleOverrideClick = () => { if (isOverriden) { // override need not be flagged delete if it was never saved in server @@ -301,8 +326,17 @@ export const SecretItem = memo( /> )} /> - ) : secretValueHidden ? ( - + ) : secretValueHidden && !isSecretBlurFocus ? ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions +
setIsSecretBlurFocus.off()} + > + +
) : ( " : undefined} containerClassName="py-1.5 rounded-md transition-all" /> )} From 95489e1b0a53fe1c8a7b9eb75df1e12cee394346 Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Wed, 23 Apr 2025 22:24:41 -0300 Subject: [PATCH 2/9] fix(secrets-permissions): UI improvements --- .../SecretOverviewTableRow/SecretEditRow.tsx | 26 +++++++++++-------- .../components/SecretListView/SecretItem.tsx | 26 +++++++++++-------- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index d3017b202..0f4c2be56 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -4,6 +4,7 @@ import { subject } from "@casl/ability"; import { faCheck, faCopy, + faEyeSlash, faProjectDiagram, faTrash, faXmark @@ -25,7 +26,6 @@ import { ModalTrigger, Tooltip } from "@app/components/v2"; -import { Blur } from "@app/components/v2/Blur"; import { InfisicalSecretInput } from "@app/components/v2/InfisicalSecretInput"; import { ProjectPermissionActions, ProjectPermissionSub, useProjectPermission } from "@app/context"; import { ProjectPermissionSecretActions } from "@app/context/ProjectPermissionContext/types"; @@ -177,18 +177,22 @@ export const SecretEditRow = ({ deleteKey={secretName} onDeleteApproved={handleDeleteSecret} /> - + {secretValueHidden && ( + + + + )}
{secretValueHidden && !isSecretBlurFocus ? ( // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -
setIsSecretBlurFocus.off()} - > - +
+ +
+ ********************* +
+
) : ( + {secretValueHidden && ( + + + + )} {isOverriden ? ( ) : secretValueHidden && !isSecretBlurFocus ? ( // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -
setIsSecretBlurFocus.off()} - > - +
+ +
+ ********************* +
+
) : ( Date: Thu, 24 Apr 2025 08:10:10 -0300 Subject: [PATCH 3/9] fix(secrets-permissions): UI improvements --- frontend/src/components/v2/SecretInput/SecretInput.tsx | 1 + .../SecretOverviewTableRow/SecretEditRow.tsx | 4 ++-- .../SecretOverviewTableRow/SecretOverviewTableRow.tsx | 2 +- .../components/SecretListView/SecretItem.tsx | 10 ++++++---- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/v2/SecretInput/SecretInput.tsx b/frontend/src/components/v2/SecretInput/SecretInput.tsx index 96f79e65f..c8b8f2ee6 100644 --- a/frontend/src/components/v2/SecretInput/SecretInput.tsx +++ b/frontend/src/components/v2/SecretInput/SecretInput.tsx @@ -93,6 +93,7 @@ export const SecretInput = forwardRef( onFocus={(evt) => { onFocus?.(evt); setIsSecretFocused.on(); + evt.currentTarget.select(); }} disabled={isDisabled} spellCheck={false} diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index 0f4c2be56..fcac51ed8 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -179,7 +179,7 @@ export const SecretEditRow = ({ /> {secretValueHidden && ( @@ -190,7 +190,7 @@ export const SecretEditRow = ({
- ********************* + ******
diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx index 78afaa021..0b2f7d07b 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx @@ -87,7 +87,7 @@ export const SecretOverviewTableRow = ({ ); if (secret?.secretValueHidden) { - return canEditSecretValue ? "" : ""; + return canEditSecretValue ? "******" : ""; } return secret?.valueOverride || secret?.value || importedSecret?.secret?.value || ""; }; diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx index e5251644f..d86342e79 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx @@ -56,6 +56,8 @@ import { TFormSchema } from "./SecretListView.utils"; +const hiddenValue = "******"; + type Props = { secret: SecretV3RawSanitized; onSaveSecret: ( @@ -107,7 +109,7 @@ export const SecretItem = memo( const getDefaultValue = () => { if (secret.secretValueHidden) { - return canEditSecretValue ? "" : ""; + return canEditSecretValue ? hiddenValue : ""; } return secret.valueOverride || secret.value || ""; }; @@ -312,7 +314,7 @@ export const SecretItem = memo( > {secretValueHidden && ( @@ -337,7 +339,7 @@ export const SecretItem = memo(
- ********************* + {hiddenValue}
@@ -354,7 +356,7 @@ export const SecretItem = memo( environment={environment} secretPath={secretPath} {...field} - defaultValue={secretValueHidden ? "" : undefined} + defaultValue={secretValueHidden ? hiddenValue : undefined} containerClassName="py-1.5 rounded-md transition-all" /> )} From b377d2a6b1088b1719eda47977c98e7c28437ebe Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Thu, 24 Apr 2025 11:15:42 -0300 Subject: [PATCH 4/9] fix(secrets-permissions): Fix setTimeout --- .../components/SecretOverviewTableRow/SecretEditRow.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index fcac51ed8..f2f6f482d 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -126,9 +126,10 @@ export const SecretEditRow = ({ } } if (secretValueHidden) { - setTimeout(() => { + const resetTimeout = setTimeout(() => { reset({ value: defaultValue || null }); - }, 0); + }, 50); + clearTimeout(resetTimeout); setIsSecretBlurFocus.off(); } else { reset({ value }); From 3de5fa066bce2ec0f766d1840674880ef50b112d Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Fri, 25 Apr 2025 08:54:25 -0300 Subject: [PATCH 5/9] fix(secrets-permissions): Fix setTimeout and eye icon size --- .../components/SecretOverviewTableRow/SecretEditRow.tsx | 5 ++--- .../components/SecretListView/SecretItem.tsx | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index f2f6f482d..f0bf551fc 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -126,10 +126,9 @@ export const SecretEditRow = ({ } } if (secretValueHidden) { - const resetTimeout = setTimeout(() => { + setTimeout(() => { reset({ value: defaultValue || null }); }, 50); - clearTimeout(resetTimeout); setIsSecretBlurFocus.off(); } else { reset({ value }); @@ -182,7 +181,7 @@ export const SecretEditRow = ({ - + )}
diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx index d86342e79..a9245136f 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx @@ -316,7 +316,7 @@ export const SecretItem = memo( - + )} {isOverriden ? ( From f460acf9b456d2b925dfc3f01476108e16f3a6ac Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Fri, 25 Apr 2025 17:56:56 -0300 Subject: [PATCH 6/9] fix(secrets-permissions): Fix case for rotated secrets --- .../components/SecretOverviewTableRow/SecretEditRow.tsx | 4 ++-- .../components/SecretListView/SecretItem.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index f0bf551fc..a3e977608 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -177,9 +177,9 @@ export const SecretEditRow = ({ deleteKey={secretName} onDeleteApproved={handleDeleteSecret} /> - {secretValueHidden && ( + {secretValueHidden && !isOverride && ( diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx index a9245136f..d717fecae 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx @@ -312,9 +312,9 @@ export const SecretItem = memo( tabIndex={0} role="button" > - {secretValueHidden && ( + {secretValueHidden && !isOverriden && ( From c229d6888ce6bdbcdbbf91a8e36cddff27862a5e Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Fri, 25 Apr 2025 20:41:44 -0300 Subject: [PATCH 7/9] feat(secrets-ui): allow read access to personal overrides --- backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts | 4 ++-- .../components/SecretOverviewTableRow/SecretEditRow.tsx | 2 +- .../SecretOverviewTableRow/SecretOverviewTableRow.tsx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index f42deb8ff..7b03ca089 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -2,7 +2,7 @@ import path from "node:path"; import RE2 from "re2"; -import { TableName, TSecretFolders, TSecretsV2 } from "@app/db/schemas"; +import { SecretType, TableName, TSecretFolders, TSecretsV2 } from "@app/db/schemas"; import { ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; import { groupBy } from "@app/lib/fn"; import { logger } from "@app/lib/logger"; @@ -717,7 +717,7 @@ export const reshapeBridgeSecret = ( rotationId: secret.rotationId, ...(secretValueHidden ? { - secretValue: INFISICAL_SECRET_VALUE_HIDDEN_MASK, + secretValue: secret.type === SecretType.Personal ? secret.value : INFISICAL_SECRET_VALUE_HIDDEN_MASK, secretValueHidden: true } : { diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index a3e977608..6d21ca6e1 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -125,7 +125,7 @@ export const SecretEditRow = ({ ); } } - if (secretValueHidden) { + if (secretValueHidden && !isOverride) { setTimeout(() => { reset({ value: defaultValue || null }); }, 50); diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx index 0b2f7d07b..c6dbb555b 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretOverviewTableRow.tsx @@ -86,7 +86,7 @@ export const SecretOverviewTableRow = ({ }) ); - if (secret?.secretValueHidden) { + if (secret?.secretValueHidden && !secret?.valueOverride) { return canEditSecretValue ? "******" : ""; } return secret?.valueOverride || secret?.value || importedSecret?.secret?.value || ""; From f9c936865ab783991609d52dd1bfe55b9c259129 Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 28 Apr 2025 16:49:29 -0300 Subject: [PATCH 8/9] feat(secrets-ui): minor improvements from PR suggestions --- .../SecretOverviewTableRow/SecretEditRow.tsx | 55 ++++++------------- .../components/SecretListView/SecretItem.tsx | 16 ------ .../SecretListView/SecretListView.tsx | 2 - 3 files changed, 18 insertions(+), 55 deletions(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index 6d21ca6e1..ffbad9412 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -87,7 +87,6 @@ export const SecretEditRow = ({ const { permission } = useProjectPermission(); const [isDeleting, setIsDeleting] = useToggle(); - const [isSecretBlurFocus, setIsSecretBlurFocus] = useToggle(false); const [isModalOpen, setIsModalOpen] = useState(false); const toggleModal = useCallback(() => { @@ -129,7 +128,6 @@ export const SecretEditRow = ({ setTimeout(() => { reset({ value: defaultValue || null }); }, 50); - setIsSecretBlurFocus.off(); } else { reset({ value }); } @@ -150,12 +148,6 @@ export const SecretEditRow = ({ }) ); - const handleSecretBlurClick = () => { - if (canEditSecretValue) { - setIsSecretBlurFocus.toggle(); - } - }; - const handleDeleteSecret = useCallback(async () => { setIsDeleting.on(); setIsModalOpen(false); @@ -185,35 +177,24 @@ export const SecretEditRow = ({ )}
- {secretValueHidden && !isSecretBlurFocus ? ( - // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -
- -
- ****** -
-
-
- ) : ( - ( - - )} - /> - )} + ( + + )} + />
{ - if (canEditSecretValue) { - setIsSecretBlurFocus.toggle(); - } - }; - const handleOverrideClick = () => { if (isOverriden) { // override need not be flagged delete if it was never saved in server @@ -334,15 +327,6 @@ export const SecretItem = memo( /> )} /> - ) : secretValueHidden && !isSecretBlurFocus ? ( - // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -
- -
- {hiddenValue} -
-
-
) : ( { - console.log("secretssssss", secrets); - const queryClient = useQueryClient(); const { popUp, handlePopUpToggle, handlePopUpOpen, handlePopUpClose } = usePopUp([ "deleteSecret", From 35749e8d1225749f30d6a340c451f6307de169e8 Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 28 Apr 2025 20:02:50 -0300 Subject: [PATCH 9/9] feat(user-auth): allow edit overwritter rotation value on overview table --- .../components/SecretOverviewTableRow/SecretEditRow.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index ffbad9412..bd7660838 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -184,7 +184,7 @@ export const SecretEditRow = ({ render={({ field }) => (