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 }}