From 2afc6b133e9bd68bd9dd07ba02b682e04e6c4245 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 22 Oct 2024 01:13:15 +0530 Subject: [PATCH] feat: resolved role issue in ui --- backend/src/ee/routes/v2/project-role-router.ts | 2 +- frontend/src/hooks/api/roles/mutation.tsx | 5 ++++- frontend/src/hooks/api/roles/queries.tsx | 4 ++-- frontend/src/views/Project/RolePage/RolePage.tsx | 2 +- .../views/Project/RolePage/components/RoleDetailsSection.tsx | 2 +- .../RolePermissionsSection/RolePermissionsSection.tsx | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/backend/src/ee/routes/v2/project-role-router.ts b/backend/src/ee/routes/v2/project-role-router.ts index 3b38fb21d..d4cdf3381 100644 --- a/backend/src/ee/routes/v2/project-role-router.ts +++ b/backend/src/ee/routes/v2/project-role-router.ts @@ -74,7 +74,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ method: "PATCH", - url: "/:projectSlug/roles/:roleId", + url: "/:projectId/roles/:roleId", config: { rateLimit: writeLimit }, diff --git a/frontend/src/hooks/api/roles/mutation.tsx b/frontend/src/hooks/api/roles/mutation.tsx index 78ec67e63..1562fbf1a 100644 --- a/frontend/src/hooks/api/roles/mutation.tsx +++ b/frontend/src/hooks/api/roles/mutation.tsx @@ -41,8 +41,11 @@ export const useUpdateProjectRole = () => { } = await apiRequest.patch(`/api/v2/workspace/${projectId}/roles/${id}`, dto); return role; }, - onSuccess: (_, { projectId }) => { + onSuccess: (_, { projectId, slug }) => { queryClient.invalidateQueries(roleQueryKeys.getProjectRoles(projectId)); + if (slug) { + queryClient.invalidateQueries(roleQueryKeys.getProjectRoleBySlug(projectId, slug)); + } } }); }; diff --git a/frontend/src/hooks/api/roles/queries.tsx b/frontend/src/hooks/api/roles/queries.tsx index d761aec0d..00fd037cc 100644 --- a/frontend/src/hooks/api/roles/queries.tsx +++ b/frontend/src/hooks/api/roles/queries.tsx @@ -39,8 +39,8 @@ const conditionsMatcher = buildMongoQueryMatcher({ $glob }, { glob }); export const roleQueryKeys = { getProjectRoles: (projectId: string) => ["roles", { projectSlug: projectId }] as const, - getProjectRoleBySlug: (projectSlug: string, roleSlug: string) => - ["roles", { projectSlug, roleSlug }] as const, + getProjectRoleBySlug: (projectId: string, roleSlug: string) => + ["roles", { projectId, roleSlug }] as const, getOrgRoles: (orgId: string) => ["org-roles", { orgId }] as const, getOrgRole: (orgId: string, roleId: string) => [{ orgId, roleId }, "org-role"] as const, getUserOrgPermissions: ({ orgId }: TGetUserOrgPermissionsDTO) => diff --git a/frontend/src/views/Project/RolePage/RolePage.tsx b/frontend/src/views/Project/RolePage/RolePage.tsx index 482f52d2e..a3b6e2041 100644 --- a/frontend/src/views/Project/RolePage/RolePage.tsx +++ b/frontend/src/views/Project/RolePage/RolePage.tsx @@ -30,7 +30,7 @@ export const RolePage = withProjectPermission( const { currentWorkspace } = useWorkspace(); const projectId = currentWorkspace?.id || ""; - const { data } = useGetProjectRoleBySlug(currentWorkspace?.slug ?? "", roleSlug as string); + const { data } = useGetProjectRoleBySlug(projectId, roleSlug as string); const { mutateAsync: deleteProjectRole } = useDeleteProjectRole(); diff --git a/frontend/src/views/Project/RolePage/components/RoleDetailsSection.tsx b/frontend/src/views/Project/RolePage/components/RoleDetailsSection.tsx index 95836cc37..c83dec712 100644 --- a/frontend/src/views/Project/RolePage/components/RoleDetailsSection.tsx +++ b/frontend/src/views/Project/RolePage/components/RoleDetailsSection.tsx @@ -19,7 +19,7 @@ export const RoleDetailsSection = ({ roleSlug, handlePopUpOpen }: Props) => { }); const { currentWorkspace } = useWorkspace(); - const { data } = useGetProjectRoleBySlug(currentWorkspace?.slug ?? "", roleSlug as string); + const { data } = useGetProjectRoleBySlug(currentWorkspace?.id ?? "", roleSlug as string); const isCustomRole = !["admin", "member", "viewer", "no-access"].includes(data?.slug ?? ""); diff --git a/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx b/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx index 2cd7ca3b4..1e7fbfdb8 100644 --- a/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx +++ b/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx @@ -48,7 +48,7 @@ export const RolePermissionsSection = ({ roleSlug, isDisabled }: Props) => { const { popUp, handlePopUpToggle } = usePopUp(["createPolicy"] as const); const projectId = currentWorkspace?.id || ""; const { data: role, isLoading } = useGetProjectRoleBySlug( - currentWorkspace?.slug ?? "", + currentWorkspace?.id ?? "", roleSlug as string );