diff --git a/packages/strapi-admin/config/functions/bootstrap.js b/packages/strapi-admin/config/functions/bootstrap.js index 174bfc0bcd..1079c554e9 100644 --- a/packages/strapi-admin/config/functions/bootstrap.js +++ b/packages/strapi-admin/config/functions/bootstrap.js @@ -26,7 +26,16 @@ const cleanPermissionInDatabase = async () => { await strapi.admin.services.permission.deleteByIds(permissionsToRemoveIds); }; +const registerAdminConditions = () => { + const { conditionProvider } = strapi.admin.services.permission; + + conditionProvider.registerMany({ + 'strapi-admin::isOwner': user => ({ 'strapi_created_by.id': user.id }), + }); +}; + module.exports = async () => { + registerAdminConditions(); registerPermissionActions(); await cleanPermissionInDatabase(); }; diff --git a/packages/strapi-admin/controllers/permission.js b/packages/strapi-admin/controllers/permission.js index b3e60e12e3..54fdf6a92b 100644 --- a/packages/strapi-admin/controllers/permission.js +++ b/packages/strapi-admin/controllers/permission.js @@ -32,7 +32,7 @@ module.exports = { */ async getAll(ctx) { const allActions = strapi.admin.services.permission.actionProvider.getAll(); - const conditions = strapi.admin.services.permission.conditionProvider.conditions(); + const conditions = strapi.admin.services.permission.conditionProvider.getAll(); ctx.body = { data: { diff --git a/packages/strapi-admin/services/__tests__/permissions.conditions-provider.test.js b/packages/strapi-admin/services/__tests__/permissions.conditions-provider.test.js index 6bc025fd25..45e0fc083c 100644 --- a/packages/strapi-admin/services/__tests__/permissions.conditions-provider.test.js +++ b/packages/strapi-admin/services/__tests__/permissions.conditions-provider.test.js @@ -91,7 +91,7 @@ describe('Condition Provider', () => { provider.registerMany(conditions); - expect(provider.conditions().sort()).toMatchObject(expected); + expect(provider.getAll().sort()).toMatchObject(expected); }); }); @@ -116,12 +116,12 @@ describe('Condition Provider', () => { provider.register(key); - expect(provider.conditions()).toHaveLength(1); + expect(provider.getAll()).toHaveLength(1); provider.delete(key); expect(provider.has).toHaveBeenCalledWith(key); - expect(provider.conditions()).toHaveLength(0); + expect(provider.getAll()).toHaveLength(0); }); test('Do nothing when the key does not exists', () => { @@ -130,7 +130,7 @@ describe('Condition Provider', () => { provider.delete(key); expect(provider.has).toHaveBeenCalledWith(key); - expect(provider.conditions()).toHaveLength(0); + expect(provider.getAll()).toHaveLength(0); }); }); }); diff --git a/packages/strapi-admin/services/permission.js b/packages/strapi-admin/services/permission.js index 2e51378ce5..5cad48cf94 100644 --- a/packages/strapi-admin/services/permission.js +++ b/packages/strapi-admin/services/permission.js @@ -4,11 +4,10 @@ const _ = require('lodash'); const { createPermission } = require('../domain/permission'); const actionProvider = require('./action-provider'); const { validatePermissionsExist } = require('../validation/permission'); -const defaultConditions = require('./permission/default-conditions'); const createConditionProvider = require('./permission/condition-provider'); const createPermissionEngine = require('./permission/engine'); -const conditionProvider = createConditionProvider(defaultConditions); +const conditionProvider = createConditionProvider(); const engine = createPermissionEngine(conditionProvider); /** diff --git a/packages/strapi-admin/services/permission/condition-provider.js b/packages/strapi-admin/services/permission/condition-provider.js index cfe6c121a1..85841c249f 100644 --- a/packages/strapi-admin/services/permission/condition-provider.js +++ b/packages/strapi-admin/services/permission/condition-provider.js @@ -2,8 +2,8 @@ const _ = require('lodash'); -module.exports = (defaultConditions = {}) => { - const _registry = new Map(Object.entries(defaultConditions)); +module.exports = () => { + const _registry = new Map(); return { /** @@ -66,7 +66,5 @@ module.exports = (defaultConditions = {}) => { has(name) { return _registry.has(name); }, - - defaultConditions, }; }; diff --git a/packages/strapi-admin/services/permission/default-conditions.js b/packages/strapi-admin/services/permission/default-conditions.js deleted file mode 100644 index b80745bbb0..0000000000 --- a/packages/strapi-admin/services/permission/default-conditions.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - 'strapi-admin::isOwner': user => ({ 'strapi_created_by.id': user.id }), -};