From 3f4c4f741836dbfa971341b744f85f20bed06de9 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 26 Sep 2024 20:43:08 +0530 Subject: [PATCH 1/2] fix: resolved permission not defined for custom org role --- backend/src/ee/services/permission/permission-dal.ts | 1 + frontend/src/hooks/api/kms/queries.tsx | 3 ++- frontend/src/layouts/AppLayout/AppLayout.tsx | 7 ++++++- frontend/src/pages/org/[id]/overview/index.tsx | 6 +++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/backend/src/ee/services/permission/permission-dal.ts b/backend/src/ee/services/permission/permission-dal.ts index 70a06739e..735d8e8d6 100644 --- a/backend/src/ee/services/permission/permission-dal.ts +++ b/backend/src/ee/services/permission/permission-dal.ts @@ -50,6 +50,7 @@ export const permissionDALFactory = (db: TDbClient) => { .select( selectAllTableCols(TableName.OrgMembership), db.ref("slug").withSchema(TableName.OrgRoles).withSchema(TableName.OrgRoles).as("customRoleSlug"), + db.ref("permissions").withSchema(TableName.OrgRoles), db.ref("authEnforced").withSchema(TableName.Organization).as("orgAuthEnforced"), db.ref("groupId").withSchema("userGroups"), db.ref("groupOrgId").withSchema("userGroups"), diff --git a/frontend/src/hooks/api/kms/queries.tsx b/frontend/src/hooks/api/kms/queries.tsx index b4a0dc0eb..091c3a95c 100644 --- a/frontend/src/hooks/api/kms/queries.tsx +++ b/frontend/src/hooks/api/kms/queries.tsx @@ -10,9 +10,10 @@ export const kmsKeys = { getActiveProjectKms: (projectId: string) => ["get-active-project-kms", { projectId }] }; -export const useGetExternalKmsList = (orgId: string) => { +export const useGetExternalKmsList = (orgId: string, { enabled }: { enabled?: boolean } = {}) => { return useQuery({ queryKey: kmsKeys.getExternalKmsList(orgId), + enabled, queryFn: async () => { const { data: { externalKmsList } diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx index 9f5e9897f..108a5f727 100644 --- a/frontend/src/layouts/AppLayout/AppLayout.tsx +++ b/frontend/src/layouts/AppLayout/AppLayout.tsx @@ -59,6 +59,7 @@ import { OrgPermissionActions, OrgPermissionSubjects, useOrganization, + useOrgPermission, useSubscription, useUser, useWorkspace @@ -153,7 +154,11 @@ export const AppLayout = ({ children }: LayoutProps) => { const { data: secretApprovalReqCount } = useGetSecretApprovalRequestCount({ workspaceId }); const { data: accessApprovalRequestCount } = useGetAccessRequestsCount({ projectSlug }); - const { data: externalKmsList } = useGetExternalKmsList(currentOrg?.id!); + const { permission } = useOrgPermission(); + console.log(permission.can(OrgPermissionActions.Read, OrgPermissionSubjects.Kms)); + const { data: externalKmsList } = useGetExternalKmsList(currentOrg?.id!, { + enabled: permission.can(OrgPermissionActions.Read, OrgPermissionSubjects.Kms) + }); const pendingRequestsCount = useMemo(() => { return (secretApprovalReqCount?.open || 0) + (accessApprovalRequestCount?.pendingCount || 0); diff --git a/frontend/src/pages/org/[id]/overview/index.tsx b/frontend/src/pages/org/[id]/overview/index.tsx index c93649f2c..237dd0373 100644 --- a/frontend/src/pages/org/[id]/overview/index.tsx +++ b/frontend/src/pages/org/[id]/overview/index.tsx @@ -56,6 +56,7 @@ import { OrgPermissionActions, OrgPermissionSubjects, useOrganization, + useOrgPermission, useSubscription, useUser, useWorkspace @@ -494,6 +495,7 @@ const OrganizationPage = () => { const { workspaces, isLoading: isWorkspaceLoading } = useWorkspace(); const { currentOrg } = useOrganization(); + const { permission } = useOrgPermission(); const routerOrgId = String(router.query.id); const orgWorkspaces = workspaces?.filter((workspace) => workspace.orgId === routerOrgId) || []; const { data: projectFavorites, isLoading: isProjectFavoritesLoading } = @@ -531,7 +533,9 @@ const OrganizationPage = () => { (localStorage.getItem("projectsViewMode") as ProjectsViewMode) || ProjectsViewMode.GRID ); - const { data: externalKmsList } = useGetExternalKmsList(currentOrg?.id!); + const { data: externalKmsList } = useGetExternalKmsList(currentOrg?.id!, { + enabled: permission.can(OrgPermissionActions.Read, OrgPermissionSubjects.Kms) + }); const onCreateProject = async ({ name, addMembers, kmsKeyId }: TAddProjectFormData) => { // type check From 301a867f8b546613fea39aca869b09a1909a1b78 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 26 Sep 2024 21:13:31 +0530 Subject: [PATCH 2/2] refactor: remove console --- frontend/src/layouts/AppLayout/AppLayout.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx index 108a5f727..382404c91 100644 --- a/frontend/src/layouts/AppLayout/AppLayout.tsx +++ b/frontend/src/layouts/AppLayout/AppLayout.tsx @@ -155,7 +155,6 @@ export const AppLayout = ({ children }: LayoutProps) => { const { data: secretApprovalReqCount } = useGetSecretApprovalRequestCount({ workspaceId }); const { data: accessApprovalRequestCount } = useGetAccessRequestsCount({ projectSlug }); const { permission } = useOrgPermission(); - console.log(permission.can(OrgPermissionActions.Read, OrgPermissionSubjects.Kms)); const { data: externalKmsList } = useGetExternalKmsList(currentOrg?.id!, { enabled: permission.can(OrgPermissionActions.Read, OrgPermissionSubjects.Kms) });