From d9ecbdc66678a60db5b5ddfb73b82cb500b03b41 Mon Sep 17 00:00:00 2001 From: Adrien Servel <50013774+Kedae@users.noreply.github.com> Date: Wed, 28 Feb 2024 01:54:59 +0100 Subject: [PATCH] [backend] Update x_opencti_files definition to update carousel and other attributes Co-authored-by: Julien Richard --- .../src/domain/stixDomainObject.js | 15 ++++++++++++--- .../stixDomainObject-registrationAttributes.ts | 1 - .../threatActorIndividual.ts | 2 -- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/domain/stixDomainObject.js b/opencti-platform/opencti-graphql/src/domain/stixDomainObject.js index a22f32ca41dc..7d96f5c47b9c 100644 --- a/opencti-platform/opencti-graphql/src/domain/stixDomainObject.js +++ b/opencti-platform/opencti-graphql/src/domain/stixDomainObject.js @@ -1,7 +1,15 @@ import * as R from 'ramda'; import { BUS_TOPICS } from '../config/conf'; import { delEditContext, notify, setEditContext } from '../database/redis'; -import { createEntity, deleteElementById, distributionEntities, timeSeriesEntities, updateAttribute } from '../database/middleware'; +import { + createEntity, + deleteElementById, + distributionEntities, + storeLoadByIdWithRefs, + timeSeriesEntities, + updateAttribute, + updateAttributeFromLoadedWithRefs +} from '../database/middleware'; import { listAllToEntitiesThroughRelations, listEntities, listEntitiesThroughRelationsPaginated, storeLoadById } from '../database/middleware-loader'; import { elCount, elFindByIds } from '../database/engine'; import { workToExportFile } from './work'; @@ -217,14 +225,15 @@ export const stixDomainObjectEditField = async (context, user, stixObjectId, inp }; export const stixDomainObjectFileEdit = async (context, user, sdoId, { id, order, description, inCarousel }) => { - const stixDomainObject = await findById(context, user, sdoId); + const stixDomainObject = await storeLoadByIdWithRefs(context, user, sdoId); const files = stixDomainObject.x_opencti_files.map((file) => { if (file.id === id) { return { ...file, order, description, inCarousel }; } return file; }); - const { element: updatedElement } = await updateAttribute(context, user, sdoId, ABSTRACT_STIX_DOMAIN_OBJECT, [{ key: 'x_opencti_files', value: files }]); + + const { element: updatedElement } = await updateAttributeFromLoadedWithRefs(context, user, stixDomainObject, { key: 'x_opencti_files', value: files }); return notify(BUS_TOPICS[ABSTRACT_STIX_DOMAIN_OBJECT].EDIT_TOPIC, updatedElement, user); }; diff --git a/opencti-platform/opencti-graphql/src/modules/attributes/stixDomainObject-registrationAttributes.ts b/opencti-platform/opencti-graphql/src/modules/attributes/stixDomainObject-registrationAttributes.ts index fc486e3f593d..5601142f88b1 100644 --- a/opencti-platform/opencti-graphql/src/modules/attributes/stixDomainObject-registrationAttributes.ts +++ b/opencti-platform/opencti-graphql/src/modules/attributes/stixDomainObject-registrationAttributes.ts @@ -203,7 +203,6 @@ const stixDomainObjectsAttributes: { [k: string]: Array } = [ENTITY_TYPE_THREAT_ACTOR_GROUP]: [ iAliasedIds, aliases, - { ...files, update: true }, { name: 'name', label: 'Name', type: 'string', format: 'short', mandatoryType: 'external', editDefault: true, multiple: false, upsert: true, isFilterable: true }, { name: 'description', label: 'Description', type: 'string', format: 'text', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, { name: 'threat_actor_types', label: 'Threat actor types', format: 'vocabulary', type: 'string', vocabularyCategory: 'threat_actor_group_type_ov', mandatoryType: 'customizable', editDefault: true, multiple: true, upsert: false, isFilterable: true }, diff --git a/opencti-platform/opencti-graphql/src/modules/threatActorIndividual/threatActorIndividual.ts b/opencti-platform/opencti-graphql/src/modules/threatActorIndividual/threatActorIndividual.ts index 8a27c69255ae..63bf386e2c74 100644 --- a/opencti-platform/opencti-graphql/src/modules/threatActorIndividual/threatActorIndividual.ts +++ b/opencti-platform/opencti-graphql/src/modules/threatActorIndividual/threatActorIndividual.ts @@ -46,7 +46,6 @@ import { ENTITY_TYPE_EVENT } from '../event/event-types'; import { ENTITY_HASHED_OBSERVABLE_STIX_FILE } from '../../schema/stixCyberObservable'; import { ENTITY_TYPE_LOCATION_ADMINISTRATIVE_AREA } from '../administrativeArea/administrativeArea-types'; import { ENTITY_TYPE_IDENTITY_ORGANIZATION } from '../organization/organization-types'; -import { files } from '../../schema/attribute-definition'; interface Measures { measure: number | null @@ -84,7 +83,6 @@ const THREAT_ACTOR_INDIVIDUAL_DEFINITION: ModuleDefinition