add content api permissions controller to it's separate file

This commit is contained in:
Bassel Kanso 2022-08-26 10:02:13 +03:00
parent 4d72da1257
commit 3ce256e279
7 changed files with 62 additions and 14 deletions

View File

@ -0,0 +1,38 @@
'use strict';
const createContext = require('../../../../../../test/helpers/create-context');
const contentApiController = require('../content-api');
describe('Content API permissions', () => {
const actionsMap = {
'api::address': {
controllers: {
address: ['find', 'findOne'],
},
},
'api::category': {
controllers: {
category: ['find', 'findOne', 'create', 'update', 'delete', 'createLocalization'],
},
},
};
test('return content api layout successfully', async () => {
const getActionsMap = jest.fn().mockResolvedValue(actionsMap);
const send = jest.fn();
const ctx = createContext({}, { send });
global.strapi = {
contentAPI: {
permissions: {
getActionsMap,
},
},
};
await contentApiController.getPermissions(ctx);
expect(getActionsMap).toHaveBeenCalled();
expect(send).toHaveBeenCalledWith({ data: actionsMap });
});
});

View File

@ -0,0 +1,9 @@
'use strict';
module.exports = {
async getPermissions(ctx) {
const actionsMap = await strapi.contentAPI.permissions.getActionsMap();
ctx.send({ data: actionsMap });
},
};

View File

@ -9,4 +9,5 @@ module.exports = {
role: require('./role'),
user: require('./user'),
webhooks: require('./webhooks'),
'content-api': require('./content-api'),
};

View File

@ -44,10 +44,4 @@ module.exports = {
},
};
},
async getContentApiPermissions(ctx) {
const actionsMap = await strapi.contentAPI.permissions.getActionsMap();
ctx.send({ data: actionsMap });
},
};

View File

@ -0,0 +1,12 @@
'use strict';
module.exports = [
{
method: 'GET',
path: '/content-api/permissions',
handler: 'content-api.getPermissions',
config: {
policies: ['admin::isAuthenticatedAdmin'],
},
},
];

View File

@ -7,6 +7,7 @@ const users = require('./users');
const roles = require('./roles');
const webhooks = require('./webhooks');
const apiTokens = require('./api-tokens');
const contentApi = require('./content-api');
module.exports = [
...admin,
@ -16,4 +17,5 @@ module.exports = [
...roles,
...webhooks,
...apiTokens,
...contentApi,
];

View File

@ -17,12 +17,4 @@ module.exports = [
policies: ['admin::isAuthenticatedAdmin'],
},
},
{
method: 'GET',
path: '/content-api-permissions',
handler: 'permission.getContentApiPermissions',
config: {
policies: ['admin::isAuthenticatedAdmin'],
},
},
];