Skip to content

Commit 5acf5c8

Browse files
authored
[backend] add authorized members when creating saved filters (#6044)
1 parent 4271eac commit 5acf5c8

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

opencti-platform/opencti-graphql/src/modules/savedFilter/savedFilter-domain.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
import { addFilter } from '../../utils/filtering/filtering-utils';
21
import { type BasicStoreEntitySavedFilter, ENTITY_TYPE_SAVED_FILTER, type StoreEntitySavedFilter } from './savedFilter-types';
32
import type { AuthContext, AuthUser } from '../../types/user';
43
import { listEntitiesPaginated } from '../../database/middleware-loader';
54
import type { QuerySavedFiltersArgs, SavedFilterAddInput } from '../../generated/graphql';
65
import { createInternalObject, deleteInternalObject } from '../../domain/internalObject';
6+
import { MEMBER_ACCESS_RIGHT_ADMIN } from '../../utils/access';
77

88
export const findAll = (context: AuthContext, user: AuthUser, args: QuerySavedFiltersArgs) => {
9-
const queryFilters = addFilter(args.filters, 'creator_id', user.id);
10-
const queryArgs = { ...args, filters: queryFilters };
11-
return listEntitiesPaginated<BasicStoreEntitySavedFilter>(context, user, [ENTITY_TYPE_SAVED_FILTER], queryArgs);
9+
return listEntitiesPaginated<BasicStoreEntitySavedFilter>(context, user, [ENTITY_TYPE_SAVED_FILTER], args);
1210
};
1311
export const addSavedFilter = (context: AuthContext, user: AuthUser, input: SavedFilterAddInput) => {
14-
return createInternalObject<StoreEntitySavedFilter>(context, user, input, ENTITY_TYPE_SAVED_FILTER);
12+
const savedFiltersToCreate = { ...input, restricted_members: [{ id: user.id, access_right: MEMBER_ACCESS_RIGHT_ADMIN }] };
13+
return createInternalObject<StoreEntitySavedFilter>(context, user, savedFiltersToCreate, ENTITY_TYPE_SAVED_FILTER);
1514
};
1615
export const deleteSavedFilter = (context: AuthContext, user: AuthUser, savedFilterId: string) => {
1716
return deleteInternalObject(context, user, savedFilterId, ENTITY_TYPE_SAVED_FILTER);

opencti-platform/opencti-graphql/tests/02-integration/02-resolvers/savedFilterResolver-test.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe, it, expect, beforeAll } from 'vitest';
22
import gql from 'graphql-tag';
3-
import { ADMIN_USER, testContext } from '../../utils/testQuery';
4-
import { queryAsAdminWithSuccess } from '../../utils/testQueryHelper';
3+
import { ADMIN_USER, testContext, USER_EDITOR } from '../../utils/testQuery';
4+
import { queryAsAdminWithSuccess, queryAsUserWithSuccess } from '../../utils/testQueryHelper';
55
import { elLoadById } from '../../../src/database/engine';
66

77
const GET_SAVED_FILTERS_QUERY = gql`
@@ -90,7 +90,16 @@ describe('Saved Filter Resolver', () => {
9090
const savedFilters = result.data?.savedFilters.edges;
9191
expect(savedFilters).toBeDefined();
9292
expect(savedFilters.length).toEqual(1);
93-
expect(savedFilters.length).toEqual(1);
93+
});
94+
it('gives the list of saved filters with restricted members', async () => {
95+
const result = await queryAsUserWithSuccess(USER_EDITOR.client, {
96+
query: GET_SAVED_FILTERS_QUERY,
97+
variables: {},
98+
});
99+
100+
const savedFilters = result.data?.savedFilters.edges;
101+
expect(savedFilters).toBeDefined();
102+
expect(savedFilters.length).toEqual(0);
94103
});
95104
});
96105
});

0 commit comments

Comments
 (0)