Do not revert isSystem update for workspaceMember (#15691)

Until this is done: [Make workspaceMembers
non-system](https://github.com/twentyhq/twenty/issues/15688)

Let's make that update to allow us to have workspaces with
workspaceMember not being system object, to allow user to customize
their data model.
This commit is contained in:
Marie
2025-11-07 10:04:10 +01:00
committed by GitHub
parent c9d7361e7c
commit 66ef867cf5
@@ -29,6 +29,7 @@ import { type CompositeFieldMetadataType } from 'src/engine/metadata-modules/wor
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
import { type FieldMetadataUpdate } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory';
import { type ObjectMetadataUpdate } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-object.factory';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { type WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage';
@Injectable()
@@ -472,6 +473,20 @@ export class WorkspaceMetadataUpdaterService {
...updateItem,
};
// Do not update isSystem for workspaceMember
// TODO to remove after https://github.com/twentyhq/twenty/issues/15688
const isObjectMetadataUpdate = entityClass === ObjectMetadataEntity;
if (
isObjectMetadataUpdate &&
oldEntity?.standardId === STANDARD_OBJECT_IDS.workspaceMember &&
'isSystem' in updateItem &&
'isSystem' in oldEntity
) {
(mergedUpdate as unknown as { isSystem: boolean }).isSystem =
oldEntity.isSystem as boolean;
}
// Omit keys that we don't want to override
keysToOmit.forEach((key) => {
delete mergedUpdate[key];