From 449e7672f9f8d71855967f231d9032fd7211c7b6 Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Fri, 20 Sep 2024 22:51:44 +0400 Subject: [PATCH] Requested changes --- backend/src/ee/services/audit-log/audit-log-dal.ts | 11 ++++++++--- .../views/Org/AuditLogsPage/components/LogsFilter.tsx | 2 +- .../views/Org/AuditLogsPage/components/LogsTable.tsx | 10 +++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index 18eb1a8cb..5e5e6872b 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -48,6 +48,10 @@ export const auditLogDALFactory = (db: TDbClient) => { }, tx?: Knex ) => { + if (!orgId && !projectId) { + throw new Error("Either orgId or projectId must be provided"); + } + try { // Find statements const sqlQuery = (tx || db.replicaNode())(TableName.AuditLog) @@ -59,11 +63,12 @@ export const auditLogDALFactory = (db: TDbClient) => { } else if (projectId) { void this.where(`${TableName.AuditLog}.projectId`, projectId); } - if (userAgentType) { - void this.where(`${TableName.AuditLog}.userAgentType`, userAgentType); - } }); + if (userAgentType) { + void sqlQuery.where("userAgentType", userAgentType); + } + // Select statements void sqlQuery .select(selectAllTableCols(TableName.AuditLog)) diff --git a/frontend/src/views/Org/AuditLogsPage/components/LogsFilter.tsx b/frontend/src/views/Org/AuditLogsPage/components/LogsFilter.tsx index cf00c9b0a..9ea92f9a9 100644 --- a/frontend/src/views/Org/AuditLogsPage/components/LogsFilter.tsx +++ b/frontend/src/views/Org/AuditLogsPage/components/LogsFilter.tsx @@ -231,7 +231,7 @@ export const LogsFilter = ({ )} /> - {isOrgAuditLogs && workspaces.length && ( + {isOrgAuditLogs && workspaces.length > 0 && ( { const { currentWorkspace } = useWorkspace(); + // Determine the project ID for filtering const filterProjectId = - filter?.projectId ?? (!isOrgAuditLogs ? currentWorkspace?.id ?? "" : null); + // Use the projectId from the filter if it exists + filter?.projectId ?? + // Otherwise, if we're not looking at org-wide audit logs + (!isOrgAuditLogs + ? // Use the current workspace ID (or an empty string if that's null) + currentWorkspace?.id ?? "" + : // For org-wide audit logs, use null (no specific project filter) + null); const { data, isLoading, isFetchingNextPage, hasNextPage, fetchNextPage } = useGetAuditLogs( {