diff --git a/packages/strapi-admin/config/admin-conditions.js b/packages/strapi-admin/config/admin-conditions.js deleted file mode 100644 index 5d69033095..0000000000 --- a/packages/strapi-admin/config/admin-conditions.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = { - conditions: { - isOwner: () => true, // to be modified - }, -}; diff --git a/packages/strapi-admin/config/functions/bootstrap.js b/packages/strapi-admin/config/functions/bootstrap.js index ffddbac051..7b78b3b789 100644 --- a/packages/strapi-admin/config/functions/bootstrap.js +++ b/packages/strapi-admin/config/functions/bootstrap.js @@ -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); diff --git a/packages/strapi-admin/controllers/__tests__/role.test.js b/packages/strapi-admin/controllers/__tests__/role.test.js index bcf21a3f36..ae609751d2 100644 --- a/packages/strapi-admin/controllers/__tests__/role.test.js +++ b/packages/strapi-admin/controllers/__tests__/role.test.js @@ -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(), diff --git a/packages/strapi-admin/controllers/role.js b/packages/strapi-admin/controllers/role.js index f94e38a070..84e9f09920 100644 --- a/packages/strapi-admin/controllers/role.js +++ b/packages/strapi-admin/controllers/role.js @@ -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'] : []; }); } diff --git a/packages/strapi-admin/services/__tests__/permission.test.js b/packages/strapi-admin/services/__tests__/permission.test.js index 8360d88dfd..5a7eab7cd0 100644 --- a/packages/strapi-admin/services/__tests__/permission.test.js +++ b/packages/strapi-admin/services/__tests__/permission.test.js @@ -52,7 +52,7 @@ describe('Permission Service', () => { permission: { actionProvider: { getAll }, conditionProvider: { - conditions: jest.fn(() => ['someCondition']), + getAll: jest.fn(() => [{ id: 'admin::is-creator' }]), }, }, }, diff --git a/packages/strapi-admin/test/admin-role.test.e2e.js b/packages/strapi-admin/test/admin-role.test.e2e.js index 121be250c4..d5a7b83642 100644 --- a/packages/strapi-admin/test/admin-role.test.e2e.js +++ b/packages/strapi-admin/test/admin-role.test.e2e.js @@ -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) ), }); diff --git a/packages/strapi-admin/validation/common-validators.js b/packages/strapi-admin/validation/common-validators.js index c0896212b4..e165a6f5ce 100644 --- a/packages/strapi-admin/validation/common-validators.js +++ b/packages/strapi-admin/validation/common-validators.js @@ -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` });