use new condition format

Signed-off-by: Pierre Noël <petersg83@gmail.com>
This commit is contained in:
Pierre Noël 2020-06-18 15:34:09 +02:00 committed by Alexandre Bodin
parent 6ab7669365
commit dd88c00514
7 changed files with 18 additions and 25 deletions

View File

@ -1,7 +0,0 @@
'use strict';
module.exports = {
conditions: {
isOwner: () => true, // to be modified
},
};

View File

@ -102,7 +102,7 @@ const createRolesIfNeeded = async () => {
const authorPermissions = _.cloneDeep(editorPermissions).map(p => ({
...p,
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
}));
await strapi.admin.services.permission.assign(editorRole.id, editorPermissions);

View File

@ -131,7 +131,7 @@ describe('Role controller', () => {
admin: {
services: {
role: { getSuperAdmin: jest.fn(() => undefined) },
permission: { conditionProvider: { conditions: jest.fn(() => []) } },
permission: { conditionProvider: { getAll: jest.fn(() => []) } },
},
},
};
@ -157,7 +157,7 @@ describe('Role controller', () => {
action: 'test',
subject: 'model1',
fields: ['title'],
conditions: ['someCondition'],
conditions: ['admin::is-creator'],
},
];
@ -178,7 +178,7 @@ describe('Role controller', () => {
permission: {
assign: assignPermissions,
conditionProvider: {
conditions: jest.fn(() => ['someCondition']),
getAll: jest.fn(() => [{ id: 'admin::is-creator' }]),
},
actionProvider: {
getAllByMap: jest.fn(),

View File

@ -112,7 +112,7 @@ module.exports = {
input.permissions
.filter(p => existingPermissions.get(p.action).section === 'contentTypes')
.forEach(p => {
p.conditions = role.code === AUTHOR_CODE ? ['isOwner'] : [];
p.conditions = role.code === AUTHOR_CODE ? ['admin::is-creator'] : [];
});
}

View File

@ -52,7 +52,7 @@ describe('Permission Service', () => {
permission: {
actionProvider: { getAll },
conditionProvider: {
conditions: jest.fn(() => ['someCondition']),
getAll: jest.fn(() => [{ id: 'admin::is-creator' }]),
},
},
},

View File

@ -69,7 +69,7 @@ describe('Role CRUD End to End', () => {
data.editorRole = res.body.data.find(r => r.code === 'strapi-editor');
});
test('Author have isOwner condition for every permission', async () => {
test('Author have admin::is-creator condition for every permission', async () => {
const res = await rq({
url: `/admin/roles/${data.authorRole.id}/permissions`,
method: 'GET',
@ -79,7 +79,7 @@ describe('Role CRUD End to End', () => {
expect(Array.isArray(res.body.data)).toBe(true);
expect(res.body.data).toHaveLength(4);
res.body.data.forEach(permission => {
expect(permission.conditions).toEqual(['isOwner']);
expect(permission.conditions).toEqual(['admin::is-creator']);
});
});
@ -106,7 +106,7 @@ describe('Role CRUD End to End', () => {
action: 'plugins::content-manager.explorer.create',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
},
];
@ -129,7 +129,7 @@ describe('Role CRUD End to End', () => {
action: 'plugins::content-manager.explorer.create',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
}),
]),
});
@ -152,7 +152,7 @@ describe('Role CRUD End to End', () => {
action: 'plugins::content-manager.explorer.create',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
}),
]),
});
@ -164,31 +164,31 @@ describe('Role CRUD End to End', () => {
},
{
action: 'plugins::users-permissions.roles.read',
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
},
{
action: 'plugins::content-manager.explorer.create',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
},
{
action: 'plugins::content-manager.explorer.update',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
},
{
action: 'plugins::content-manager.explorer.delete',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
},
{
action: 'plugins::content-manager.explorer.read',
subject: 'plugins::users-permissions.user',
fields: ['username'],
conditions: ['isOwner'],
conditions: ['admin::is-creator'],
},
];
@ -222,7 +222,7 @@ describe('Role CRUD End to End', () => {
data: expect.arrayContaining(
newPermissions
.slice(3, 6)
.map(p => ({ ...p, conditions: ['isOwner'] }))
.map(p => ({ ...p, conditions: ['admin::is-creator'] }))
.map(expect.objectContaining)
),
});

View File

@ -35,7 +35,7 @@ const arrayOfConditionNames = yup
.array()
.of(yup.string())
.test('is-an-array-of-conditions', 'is not a plugin name', function(value) {
const ids = strapi.admin.services.permission.conditionProvider.conditions();
const ids = strapi.admin.services.permission.conditionProvider.getAll().map(c => c.id);
return _.isUndefined(value) || _.difference(value, ids).length === 0
? true
: this.createError({ path: this.path, message: `contains conditions that don't exist` });