From 3e9ce79398a448be24bef55f2410bf8e0556f939 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 28 May 2024 12:38:57 +0800 Subject: [PATCH] fix: resolved trailing slash issue with additional privileges --- frontend/src/helpers/string.ts | 5 +++++ .../MemberRoleForm/SpecificPrivilegeSection.tsx | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 frontend/src/helpers/string.ts diff --git a/frontend/src/helpers/string.ts b/frontend/src/helpers/string.ts new file mode 100644 index 000000000..8f581a280 --- /dev/null +++ b/frontend/src/helpers/string.ts @@ -0,0 +1,5 @@ +export const removeTrailingSlash = (str: string) => { + if (str === "/") return str; + + return str.endsWith("/") ? str.slice(0, -1) : str; +}; diff --git a/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoleForm/SpecificPrivilegeSection.tsx b/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoleForm/SpecificPrivilegeSection.tsx index 6fb97063b..7894d0e78 100644 --- a/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoleForm/SpecificPrivilegeSection.tsx +++ b/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoleForm/SpecificPrivilegeSection.tsx @@ -43,6 +43,7 @@ import { useProjectPermission, useWorkspace } from "@app/context"; +import { removeTrailingSlash } from "@app/helpers/string"; import { usePopUp } from "@app/hooks"; import { TProjectUserPrivilege, @@ -104,7 +105,9 @@ export const SpecificPrivilegeSecretForm = ({ ? { environmentSlug: privilege.permissions?.[0]?.conditions?.environment, // secret path will be inside $glob operator - secretPath: privilege.permissions?.[0]?.conditions?.secretPath?.$glob || "", + secretPath: privilege.permissions?.[0]?.conditions?.secretPath?.$glob + ? removeTrailingSlash(privilege.permissions?.[0]?.conditions?.secretPath?.$glob) + : "", read: privilege.permissions?.some(({ action }) => action.includes(ProjectPermissionActions.Read) ), @@ -183,7 +186,7 @@ export const SpecificPrivilegeSecretForm = ({ ]; const conditions: Record = { environment: data.environmentSlug }; if (data.secretPath) { - conditions.secretPath = { $glob: data.secretPath }; + conditions.secretPath = { $glob: removeTrailingSlash(data.secretPath) }; } await updateUserPrivilege.mutateAsync({ privilegeId: privilege.id,