From eca2c57a71a9aeceaba8050754d2467019d78be2 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 15 Mar 2023 18:37:42 +0100 Subject: [PATCH 1/4] Fix invalid action mapping using unknow action --- .../core/content-manager/server/services/permission-checker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/content-manager/server/services/permission-checker.js b/packages/core/content-manager/server/services/permission-checker.js index f7dc8d124dc..567a1dd4c9e 100644 --- a/packages/core/content-manager/server/services/permission-checker.js +++ b/packages/core/content-manager/server/services/permission-checker.js @@ -64,7 +64,7 @@ const createPermissionChecker = // Sanitized queries shortcuts Object.keys(ACTIONS).forEach((action) => { - sanitizedQuery[action] = (query) => sanitizedQuery(query, action); + sanitizedQuery[action] = (query) => sanitizedQuery(query, ACTIONS[action]); }); // Permission utils shortcuts From 18fbe664d719d3413eab3cc996abbe505aba4576 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 15 Mar 2023 19:08:49 +0100 Subject: [PATCH 2/4] Fix tests --- .../server/controllers/__tests__/user.test.js | 33 +++++++++++++++++++ .../__tests__/single-types.test.js | 15 +++++++++ 2 files changed, 48 insertions(+) diff --git a/packages/core/admin/server/controllers/__tests__/user.test.js b/packages/core/admin/server/controllers/__tests__/user.test.js index f8845989a75..c2c40417192 100644 --- a/packages/core/admin/server/controllers/__tests__/user.test.js +++ b/packages/core/admin/server/controllers/__tests__/user.test.js @@ -174,13 +174,29 @@ describe('User Controller', () => { pagination, })); + const state = { + userAbility: { + can: jest.fn(), + cannot: jest.fn(() => false), + }, + }; + const sanitizeUser = jest.fn((user) => user); const ctx = createContext({}); + ctx.state = state; + + const createPermissionsManager = jest.fn(() => ({ + ability: state.userAbility, + sanitizeQuery: (query) => query, + })); global.strapi = { admin: { services: { user: { findPage, sanitizeUser }, + permission: { + createPermissionsManager, + }, }, }, }; @@ -199,13 +215,30 @@ describe('User Controller', () => { pagination, })); + const state = { + userAbility: { + can: jest.fn(), + cannot: jest.fn(() => false), + }, + }; + const sanitizeUser = jest.fn((user) => user); const ctx = createContext({ query: { _q: 'foo' } }); + ctx.state = state; + + const createPermissionsManager = jest.fn(() => ({ + ability: state.userAbility, + sanitizeQuery: (query) => query, + })); + global.strapi = { admin: { services: { user: { findPage, sanitizeUser }, + permission: { + createPermissionsManager, + }, }, }, }; diff --git a/packages/core/content-manager/server/controllers/__tests__/single-types.test.js b/packages/core/content-manager/server/controllers/__tests__/single-types.test.js index ed27ba93a8e..6915ec2d6ef 100644 --- a/packages/core/content-manager/server/controllers/__tests__/single-types.test.js +++ b/packages/core/content-manager/server/controllers/__tests__/single-types.test.js @@ -23,6 +23,9 @@ describe('Single Types', () => { create: jest.fn(() => false), }, buildReadQuery: jest.fn((query) => query), + sanitizedQuery: { + read: (q) => q, + }, }; global.strapi = { @@ -101,6 +104,9 @@ describe('Single Types', () => { sanitizeCreateInput: (obj) => obj, sanitizeOutput: (obj) => obj, buildReadQuery: jest.fn((query) => query), + sanitizedQuery: { + update: (q) => q, + }, }; const createFn = jest.fn(() => ({})); @@ -215,6 +221,9 @@ describe('Single Types', () => { }, sanitizeOutput: jest.fn((obj) => obj), buildReadQuery: jest.fn((query) => query), + sanitizedQuery: { + delete: (q) => q, + }, }; const deleteFn = jest.fn(() => ({})); @@ -309,6 +318,9 @@ describe('Single Types', () => { }, sanitizeOutput: jest.fn((obj) => obj), buildReadQuery: jest.fn((query) => query), + sanitizedQuery: { + publish: (q) => q, + }, }; const publishFn = jest.fn(() => ({})); @@ -403,6 +415,9 @@ describe('Single Types', () => { }, sanitizeOutput: jest.fn((obj) => obj), buildReadQuery: jest.fn((query) => query), + sanitizedQuery: { + unpublish: (q) => q, + }, }; const unpublishFn = jest.fn(() => ({})); From 8819379e300aa611c18899e5915a1b7aec181c34 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 15 Mar 2023 19:41:35 +0100 Subject: [PATCH 3/4] Revert other issue --- packages/plugins/graphql/server/services/builders/utils.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/plugins/graphql/server/services/builders/utils.js b/packages/plugins/graphql/server/services/builders/utils.js index 3f3824d649f..1734d22b12f 100644 --- a/packages/plugins/graphql/server/services/builders/utils.js +++ b/packages/plugins/graphql/server/services/builders/utils.js @@ -1,7 +1,6 @@ 'use strict'; const { entries, mapValues, omit } = require('lodash/fp'); -const { idArg, nonNull } = require('nexus'); const { pagination: { withDefaultPagination }, contentTypes: { hasDraftAndPublish }, @@ -38,7 +37,7 @@ module.exports = ({ strapi }) => { // Collection Types if (kind === 'collectionType') { if (!multiple) { - return { id: nonNull(idArg()) }; + return { id: 'ID' }; } const params = { From 9295b52bb78280d6e77ab803de3ed86ea1698be7 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 15 Mar 2023 20:55:25 +0100 Subject: [PATCH 4/4] Fix api tests --- packages/core/admin/server/tests/admin-user.test.api.js | 2 +- packages/core/strapi/tests/api/fields/fields.test.api.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core/admin/server/tests/admin-user.test.api.js b/packages/core/admin/server/tests/admin-user.test.api.js index 2cf6de4d876..b5bba2e80ed 100644 --- a/packages/core/admin/server/tests/admin-user.test.api.js +++ b/packages/core/admin/server/tests/admin-user.test.api.js @@ -379,7 +379,7 @@ describe('Admin User CRUD (api)', () => { method: 'GET', qs: { filters: { - email: testData.user.email, + username: testData.user.username, }, }, }); diff --git a/packages/core/strapi/tests/api/fields/fields.test.api.js b/packages/core/strapi/tests/api/fields/fields.test.api.js index 8ac35035e1f..f7c90146eef 100644 --- a/packages/core/strapi/tests/api/fields/fields.test.api.js +++ b/packages/core/strapi/tests/api/fields/fields.test.api.js @@ -16,7 +16,10 @@ const data = { product: [] }; const getProductDataFields = (fields) => { return data.product.map((product) => { - return { ...product, attributes: _.pick(product.attributes, fields) }; + return { + ...product, + attributes: fields.length > 0 ? _.pick(product.attributes, fields) : product.attributes, + }; }); };