diff --git a/opencti-platform/opencti-front/src/private/components/common/containers/ContainerHeader.jsx b/opencti-platform/opencti-front/src/private/components/common/containers/ContainerHeader.jsx index 62d5a7f7193d..12a4488a54bf 100644 --- a/opencti-platform/opencti-front/src/private/components/common/containers/ContainerHeader.jsx +++ b/opencti-platform/opencti-front/src/private/components/common/containers/ContainerHeader.jsx @@ -502,7 +502,7 @@ const ContainerHeader = (props) => { ], }, }; - const isAuthorizedMembersEnabled = !disableAuthorizedMembers && (isFeatureEnable('CONTAINERS_AUTHORIZED_MEMBERS') || container.entity_type === 'Feedback'); + const isAuthorizedMembersEnabled = !disableAuthorizedMembers; const currentAccessRight = useGetCurrentUserAccessRight(container.currentUserAccessRight); const canEdit = currentAccessRight.canEdit || !isAuthorizedMembersEnabled; const enableManageAuthorizedMembers = currentAccessRight.canManage && isAuthorizedMembersEnabled; diff --git a/opencti-platform/opencti-front/src/private/components/data/Root.jsx b/opencti-platform/opencti-front/src/private/components/data/Root.jsx index 26bac1f5de57..596101a1d0c3 100644 --- a/opencti-platform/opencti-front/src/private/components/data/Root.jsx +++ b/opencti-platform/opencti-front/src/private/components/data/Root.jsx @@ -39,7 +39,6 @@ const Management = lazy(() => import('./Management')); const Root = () => { const { isFeatureEnable } = useHelper(); const isRightMenuManagementEnable = isFeatureEnable('DATA_MANAGEMENT_RIGHT_MENU'); - const isNewManagementScreenEnable = isFeatureEnable('MANAGE_RESTRICTED_ENTITIES'); const isGrantedToKnowledge = useGranted([KNOWLEDGE]); const isGrantedToIngestion = useGranted([MODULES, INGESTION, INGESTION_SETINGESTIONS]); @@ -202,12 +201,10 @@ const Root = () => { element={} /> )} - {isNewManagementScreenEnable && ( - )} ); diff --git a/opencti-platform/opencti-front/src/private/components/nav/LeftBar.jsx b/opencti-platform/opencti-front/src/private/components/nav/LeftBar.jsx index ab6127410858..5d902dcd1072 100644 --- a/opencti-platform/opencti-front/src/private/components/nav/LeftBar.jsx +++ b/opencti-platform/opencti-front/src/private/components/nav/LeftBar.jsx @@ -224,7 +224,6 @@ const LeftBar = () => { } = useAuth(); const { isFeatureEnable } = useHelper(); const isDraftFeatureEnabled = isFeatureEnable('DRAFT_WORKSPACE'); - const isNewManagementScreenEnable = isFeatureEnable('MANAGE_RESTRICTED_ENTITIES'); const navigate = useNavigate(); const isEnterpriseEdition = useEnterpriseEdition(); const isGrantedToKnowledge = useGranted([KNOWLEDGE]); @@ -915,9 +914,7 @@ const LeftBar = () => { { granted: isGrantedToImport && !draftContext, link: '/dashboard/data/import', label: 'Import' }, { granted: isGrantedToProcessing && !draftContext, link: '/dashboard/data/processing', label: 'Processing' }, { granted: isGrantedToSharing && !draftContext, link: '/dashboard/data/sharing', label: 'Data sharing' }, - ...(isNewManagementScreenEnable - ? [{ granted: isGrantedToManage, link: '/dashboard/data/restriction', label: 'Restriction' }] - : []), + ...([{ granted: isGrantedToManage, link: '/dashboard/data/restriction', label: 'Restriction' }]), ], )} diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 78df019c11d8..33ed5d31ba8f 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -2405,6 +2405,7 @@ enum StixCoreObjectsOrdering { opinions_metrics_max opinions_metrics_total _score + authorized_members_activation_date } type StixCoreObjectConnection { diff --git a/opencti-platform/opencti-graphql/config/schema/opencti.graphql b/opencti-platform/opencti-graphql/config/schema/opencti.graphql index 23ff14ee4bab..13646bb1bee8 100644 --- a/opencti-platform/opencti-graphql/config/schema/opencti.graphql +++ b/opencti-platform/opencti-graphql/config/schema/opencti.graphql @@ -2351,6 +2351,7 @@ enum StixCoreObjectsOrdering { opinions_metrics_max opinions_metrics_total _score + authorized_members_activation_date } type StixCoreObjectConnection { pageInfo: PageInfo! diff --git a/opencti-platform/opencti-graphql/src/database/middleware.js b/opencti-platform/opencti-graphql/src/database/middleware.js index 3ab68ddeddae..80d78e5333e0 100644 --- a/opencti-platform/opencti-graphql/src/database/middleware.js +++ b/opencti-platform/opencti-graphql/src/database/middleware.js @@ -121,7 +121,7 @@ import { STIX_REF_RELATIONSHIP_TYPES } from '../schema/stixRefRelationship'; import { ENTITY_TYPE_SETTINGS, ENTITY_TYPE_STATUS, ENTITY_TYPE_USER } from '../schema/internalObject'; -import { isStixCoreObject, isStixObject } from '../schema/stixCoreObject'; +import { isStixCoreObject } from '../schema/stixCoreObject'; import { isBasicRelationship } from '../schema/stixRelationship'; import { dateForEndAttributes, @@ -196,7 +196,6 @@ import { cleanMarkings, handleMarkingOperations } from '../utils/markingDefiniti import { generateCreateMessage, generateRestoreMessage, generateUpdatePatchMessage } from './generate-message'; import { authorizedMembersActivationDate, confidence, creators, iAliasedIds, iAttributes, modified, updatedAt, xOpenctiStixIds } from '../schema/attribute-definition'; import { ENTITY_TYPE_INDICATOR } from '../modules/indicator/indicator-types'; -import { ENTITY_TYPE_CONTAINER_FEEDBACK } from '../modules/case/feedback/feedback-types'; import { FilterMode, FilterOperator } from '../generated/graphql'; import { getMandatoryAttributesForSetting } from '../modules/entitySetting/entitySetting-attributeUtils'; import { ENTITY_TYPE_IDENTITY_ORGANIZATION } from '../modules/organization/organization-types'; @@ -1918,11 +1917,6 @@ export const updateAttributeMetaResolved = async (context, user, initial, inputs // Check user access update let accessOperation = 'edit'; if (updates.some((e) => e.key === 'authorized_members')) { - if (isStixObject(initial.entity_type) - && initial.entity_type !== ENTITY_TYPE_CONTAINER_FEEDBACK - && !isFeatureEnabled('CONTAINERS_AUTHORIZED_MEMBERS')) { - throw UnsupportedError('This feature is disabled'); - } accessOperation = 'manage-access'; if (schemaAttributesDefinition.getAttribute(initial.entity_type, authorizedMembersActivationDate.name) && (!initial.authorized_members || initial.authorized_members.length === 0) diff --git a/opencti-platform/opencti-graphql/src/domain/container.js b/opencti-platform/opencti-graphql/src/domain/container.js index c4e1da6b8727..787f5b956c29 100644 --- a/opencti-platform/opencti-graphql/src/domain/container.js +++ b/opencti-platform/opencti-graphql/src/domain/container.js @@ -28,9 +28,8 @@ import { findById as findInvestigationById } from '../modules/workspace/workspac import { stixCoreObjectAddRelations } from './stixCoreObject'; import { editAuthorizedMembers } from '../utils/authorizedMembers'; import { addFilter } from '../utils/filtering/filtering-utils'; -import { FunctionalError, UnsupportedError } from '../config/errors'; +import { FunctionalError } from '../config/errors'; import conf, { isFeatureEnabled } from '../config/conf'; -import { ENTITY_TYPE_CONTAINER_FEEDBACK } from '../modules/case/feedback/feedback-types'; import { paginatedForPathWithEnrichment } from '../modules/internal/document/document-domain'; import { isEnterpriseEdition } from '../enterprise-edition/ee'; import { ENTITY_TYPE_FINTEL_TEMPLATE } from '../modules/fintelTemplate/fintelTemplate-types'; @@ -274,9 +273,6 @@ export const containerEditAuthorizedMembers = async (context, user, entityId, in if (!entity) { throw FunctionalError('Cant find element to update', { entityId }); } - if (entity.entity_type !== ENTITY_TYPE_CONTAINER_FEEDBACK && !isFeatureEnabled('CONTAINERS_AUTHORIZED_MEMBERS')) { - throw UnsupportedError('This feature is disabled'); - } return editAuthorizedMembers(context, user, args); }; diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 97396d86ff78..5e481012fda1 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -24381,6 +24381,7 @@ export type StixCoreObjectsNumberParameters = { export enum StixCoreObjectsOrdering { Score = '_score', + AuthorizedMembersActivationDate = 'authorized_members_activation_date', Created = 'created', CreatedBy = 'createdBy', CreatedAt = 'created_at', 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 a54b9927520d..2f5ef99481db 100644 --- a/opencti-platform/opencti-graphql/src/modules/attributes/stixDomainObject-registrationAttributes.ts +++ b/opencti-platform/opencti-graphql/src/modules/attributes/stixDomainObject-registrationAttributes.ts @@ -128,8 +128,8 @@ const stixDomainObjectsAttributes: { [k: string]: Array } = { name: 'published', label: 'Report publication date', type: 'date', mandatoryType: 'external', editDefault: true, multiple: false, upsert: false, isFilterable: true }, { name: 'content', label: 'Content', type: 'string', format: 'short', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, { name: 'content_mapping', label: 'Content mapping', type: 'string', format: 'text', mandatoryType: 'no', editDefault: false, multiple: false, upsert: true, isFilterable: false }, - { ...authorizedMembers, editDefault: true, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, - { ...authorizedMembersActivationDate, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, + { ...authorizedMembers, editDefault: true }, + { ...authorizedMembersActivationDate }, ], [ENTITY_TYPE_COURSE_OF_ACTION]: [ xOpenctiAliases, diff --git a/opencti-platform/opencti-graphql/src/modules/case/case-incident/case-incident.ts b/opencti-platform/opencti-graphql/src/modules/case/case-incident/case-incident.ts index 3266b3720a66..14228c5266c6 100644 --- a/opencti-platform/opencti-graphql/src/modules/case/case-incident/case-incident.ts +++ b/opencti-platform/opencti-graphql/src/modules/case/case-incident/case-incident.ts @@ -40,8 +40,8 @@ const CASE_INCIDENT_DEFINITION: ModuleDefinition = { { name: 'information_types', label: 'Information types', type: 'string', format: 'vocabulary', vocabularyCategory: 'request_for_information_types_ov', mandatoryType: 'customizable', editDefault: true, multiple: true, upsert: true, isFilterable: true }, { name: 'severity', label: 'Severity', type: 'string', format: 'vocabulary', vocabularyCategory: 'case_severity_ov', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, { name: 'priority', label: 'Priority', type: 'string', format: 'vocabulary', vocabularyCategory: 'case_priority_ov', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, - { ...authorizedMembers, editDefault: true, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, - { ...authorizedMembersActivationDate, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, + { ...authorizedMembers, editDefault: true }, + { ...authorizedMembersActivationDate }, ], relations: [], relationsRefs: [createdBy, objectMarking, objectAssignee, objectParticipant], diff --git a/opencti-platform/opencti-graphql/src/modules/case/case-rft/case-rft.ts b/opencti-platform/opencti-graphql/src/modules/case/case-rft/case-rft.ts index d78a719581db..d85a6591c842 100644 --- a/opencti-platform/opencti-graphql/src/modules/case/case-rft/case-rft.ts +++ b/opencti-platform/opencti-graphql/src/modules/case/case-rft/case-rft.ts @@ -42,8 +42,8 @@ const CASE_RFT_DEFINITION: ModuleDefinition = { { name: 'takedown_types', label: 'Takedown types', type: 'string', format: 'vocabulary', vocabularyCategory: 'request_for_takedown_types_ov', mandatoryType: 'customizable', editDefault: true, multiple: true, upsert: true, isFilterable: true }, { name: 'severity', label: 'Severity', type: 'string', format: 'vocabulary', vocabularyCategory: 'case_severity_ov', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, { name: 'priority', label: 'Priority', type: 'string', format: 'vocabulary', vocabularyCategory: 'case_priority_ov', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, - { ...authorizedMembers, editDefault: true, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, - { ...authorizedMembersActivationDate, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, + { ...authorizedMembers, editDefault: true }, + { ...authorizedMembersActivationDate }, ], relations: [], relationsRefs: [createdBy, objectMarking, objectAssignee, objectParticipant], diff --git a/opencti-platform/opencti-graphql/src/modules/case/feedback/feedback.ts b/opencti-platform/opencti-graphql/src/modules/case/feedback/feedback.ts index 7e1258d00797..5d9745cccc36 100644 --- a/opencti-platform/opencti-graphql/src/modules/case/feedback/feedback.ts +++ b/opencti-platform/opencti-graphql/src/modules/case/feedback/feedback.ts @@ -5,7 +5,7 @@ import type { ModuleDefinition } from '../../../schema/module'; import { registerDefinition } from '../../../schema/module'; import convertFeedbackToStix from './feedback-converter'; import { createdBy, objectAssignee, objectMarking, objectOrganization } from '../../../schema/stixRefRelationship'; -import { authorizedMembers } from '../../../schema/attribute-definition'; +import { authorizedMembers, authorizedMembersActivationDate } from '../../../schema/attribute-definition'; const FEEDBACK_DEFINITION: ModuleDefinition = { type: { @@ -33,7 +33,8 @@ const FEEDBACK_DEFINITION: ModuleDefinition = ], attributes: [ { name: 'rating', label: 'Rating', type: 'numeric', precision: 'integer', mandatoryType: 'external', editDefault: true, multiple: false, upsert: true, isFilterable: true }, - { ...authorizedMembers, editDefault: true } + { ...authorizedMembers, editDefault: true }, + { ...authorizedMembersActivationDate }, ], relations: [], relationsRefs: [ diff --git a/opencti-platform/opencti-graphql/src/modules/grouping/grouping.ts b/opencti-platform/opencti-graphql/src/modules/grouping/grouping.ts index 7a0ab7620e81..0c49a6560fc6 100644 --- a/opencti-platform/opencti-graphql/src/modules/grouping/grouping.ts +++ b/opencti-platform/opencti-graphql/src/modules/grouping/grouping.ts @@ -37,8 +37,8 @@ const GROUPING_DEFINITION: ModuleDefinition = { name: 'content', label: 'Content', type: 'string', format: 'short', mandatoryType: 'customizable', editDefault: true, multiple: false, upsert: true, isFilterable: true }, { name: 'content_mapping', label: 'Content mapping', format: 'text', type: 'string', mandatoryType: 'no', editDefault: false, multiple: false, upsert: true, isFilterable: false }, { name: 'context', label: 'Context', type: 'string', format: 'vocabulary', vocabularyCategory: 'grouping_context_ov', mandatoryType: 'external', editDefault: true, multiple: false, upsert: true, isFilterable: true }, - { ...authorizedMembers, editDefault: true, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, - { ...authorizedMembersActivationDate, featureFlag: 'CONTAINERS_AUTHORIZED_MEMBERS' }, + { ...authorizedMembers, editDefault: true }, + { ...authorizedMembersActivationDate }, ], relations: [ {