From 0bb5126b96286ea957c3ce8837b134d62584aedc Mon Sep 17 00:00:00 2001
From: Wing-Kam Wong
Date: Thu, 20 Apr 2023 11:09:55 +0800
Subject: [PATCH 1/4] fix(nc-gui): retrieve the comment part from the audit
description
---
.../nc-gui/components/smartsheet/expanded-form/Comments.vue | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue b/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
index 6d3ef5c2db..1f19f92927 100644
--- a/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
+++ b/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
@@ -158,7 +158,11 @@ watch(
class="block caption my-2 nc-chip w-full min-h-20px p-2 rounded"
:style="{ backgroundColor: enumColor.light[2] }"
>
- {{ log.description }}
+
+ {{ log.description.substring(log.description.indexOf(':') + 1) }}
From 018cff6e67e5fe9b2877699b4b223ba3a6b925ac Mon Sep 17 00:00:00 2001
From: Wing-Kam Wong
Date: Thu, 20 Apr 2023 12:32:09 +0800
Subject: [PATCH 2/4] fix(nocodb): audit edit details
---
packages/nocodb-nest/src/db/BaseModelSqlv2.ts | 14 +++++++++-----
.../db/sql-data-mapper/lib/sql/BaseModelSqlv2.ts | 6 +++++-
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/packages/nocodb-nest/src/db/BaseModelSqlv2.ts b/packages/nocodb-nest/src/db/BaseModelSqlv2.ts
index 96be9282d3..a5bd653825 100644
--- a/packages/nocodb-nest/src/db/BaseModelSqlv2.ts
+++ b/packages/nocodb-nest/src/db/BaseModelSqlv2.ts
@@ -15,10 +15,6 @@ import ejs from 'ejs';
import Validator from 'validator';
import { customAlphabet } from 'nanoid';
import DOMPurify from 'isomorphic-dompurify';
-
-const GROUP_COL = '__nc_group_id';
-
-const nanoidv2 = customAlphabet('1234567890abcdefghijklmnopqrstuvwxyz', 14);
import { v4 as uuidv4 } from 'uuid';
import { NcError } from '../helpers/catchError';
import getAst from '../helpers/getAst';
@@ -67,6 +63,10 @@ import type {
import type { Knex } from 'knex';
import type { SortType } from 'nocodb-sdk';
+const GROUP_COL = '__nc_group_id';
+
+const nanoidv2 = customAlphabet('1234567890abcdefghijklmnopqrstuvwxyz', 14);
+
export async function getViewAndModelByAliasOrId(param: {
projectName: string;
tableName: string;
@@ -2434,6 +2434,7 @@ class BaseModelSqlv2 {
): Promise {
const id = this._extractPksValues(newData);
let desc = `Record with ID ${id} has been updated in Table ${this.model.title}.`;
+ let details = '';
if (updateObj) {
updateObj = await this.model.mapColumnToAlias(updateObj);
for (const k of Object.keys(updateObj)) {
@@ -2447,6 +2448,9 @@ class BaseModelSqlv2 {
: newData[k];
desc += `\n`;
desc += `Column "${k}" got changed from "${prevValue}" to "${newValue}"`;
+ details += DOMPurify.sanitize(`${k}
+ : ${prevValue}
+ ${newValue}`);
}
}
await Audit.insert({
@@ -2455,7 +2459,7 @@ class BaseModelSqlv2 {
op_type: AuditOperationTypes.DATA,
op_sub_type: AuditOperationSubTypes.UPDATE,
description: DOMPurify.sanitize(desc),
- // details: JSON.stringify(data),
+ details,
ip: req?.clientIp,
user: req?.user?.email,
});
diff --git a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/BaseModelSqlv2.ts b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/BaseModelSqlv2.ts
index 426445c431..c38e47b8ed 100644
--- a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/BaseModelSqlv2.ts
+++ b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/BaseModelSqlv2.ts
@@ -2402,6 +2402,7 @@ class BaseModelSqlv2 {
): Promise {
const id = this._extractPksValues(newData);
let desc = `Record with ID ${id} has been updated in Table ${this.model.title}.`;
+ let details = '';
if (updateObj) {
updateObj = await this.model.mapColumnToAlias(updateObj);
for (const k of Object.keys(updateObj)) {
@@ -2415,6 +2416,9 @@ class BaseModelSqlv2 {
: newData[k];
desc += `\n`;
desc += `Column "${k}" got changed from "${prevValue}" to "${newValue}"`;
+ details += DOMPurify.sanitize(`${k}
+ : ${prevValue}
+ ${newValue}`);
}
}
await Audit.insert({
@@ -2423,7 +2427,7 @@ class BaseModelSqlv2 {
op_type: AuditOperationTypes.DATA,
op_sub_type: AuditOperationSubTypes.UPDATE,
description: DOMPurify.sanitize(desc),
- // details: JSON.stringify(data),
+ details,
ip: req?.clientIp,
user: req?.user?.email,
});
From a5754755f1af9d90738381593e5378f4251127b5 Mon Sep 17 00:00:00 2001
From: Wing-Kam Wong
Date: Thu, 20 Apr 2023 12:37:27 +0800
Subject: [PATCH 3/4] fix(nc-gui): show audit description if details are not
available
---
.../nc-gui/components/smartsheet/expanded-form/Comments.vue | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue b/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
index 1f19f92927..f5c7d5b283 100644
--- a/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
+++ b/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
@@ -166,7 +166,9 @@ watch(
-
+
+
+ {{ log.description }}
{{ timeAgo(log.created_at) }}
From 5dbf98cf211507b9486042cf9beae7e05d8c0ff4 Mon Sep 17 00:00:00 2001
From: Wing-Kam Wong
Date: Tue, 25 Apr 2023 18:03:59 +0800
Subject: [PATCH 4/4] fix(nc-gui): add missing else
---
.../nc-gui/components/smartsheet/expanded-form/Comments.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue b/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
index f5c7d5b283..a7c93920e5 100644
--- a/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
+++ b/packages/nc-gui/components/smartsheet/expanded-form/Comments.vue
@@ -166,7 +166,7 @@ watch(
-
+
{{ log.description }}