From 0fd823af21f55575559fb2f70f23b1e8b264d538 Mon Sep 17 00:00:00 2001 From: Weiko Date: Wed, 22 Nov 2023 17:17:13 +0100 Subject: [PATCH] Allow isActive to be updated for standard objects (#2651) * Allow isActive to be updated for standard objects * Allow isActive to be updated for standard objects/fields --- .../hooks/before-update-one-field.hook.ts | 17 ++++++++++++++++- .../hooks/before-update-one-object.hook.ts | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/server/src/metadata/field-metadata/hooks/before-update-one-field.hook.ts b/server/src/metadata/field-metadata/hooks/before-update-one-field.hook.ts index bac26cb28..9b1532e30 100644 --- a/server/src/metadata/field-metadata/hooks/before-update-one-field.hook.ts +++ b/server/src/metadata/field-metadata/hooks/before-update-one-field.hook.ts @@ -40,7 +40,22 @@ export class BeforeUpdateOneField } if (!fieldMetadata.isCustom) { - throw new BadRequestException("Standard Fields can't be updated"); + if ( + Object.keys(instance.update).length === 1 && + instance.update.hasOwnProperty('isActive') && + instance.update.isActive !== undefined + ) { + return { + id: instance.id, + update: { + isActive: instance.update.isActive, + } as T, + }; + } + + throw new BadRequestException( + 'Only isActive field can be updated for standard fields', + ); } this.checkIfFieldIsEditable(instance.update); diff --git a/server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts b/server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts index 8a2ffee39..321d04d6b 100644 --- a/server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts +++ b/server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts @@ -48,7 +48,22 @@ export class BeforeUpdateOneObject } if (!objectMetadata.isCustom) { - throw new BadRequestException("Standard Objects can't be updated"); + if ( + Object.keys(instance.update).length === 1 && + instance.update.hasOwnProperty('isActive') && + instance.update.isActive !== undefined + ) { + return { + id: instance.id, + update: { + isActive: instance.update.isActive, + } as T, + }; + } + + throw new BadRequestException( + 'Only isActive field can be updated for standard objects', + ); } if (