diff --git a/packages/strapi-admin/config/admin-conditions.js b/packages/strapi-admin/config/admin-conditions.js index 670e7766bd..5ef4e1023b 100644 --- a/packages/strapi-admin/config/admin-conditions.js +++ b/packages/strapi-admin/config/admin-conditions.js @@ -3,10 +3,24 @@ module.exports = { conditions: [ { - displayName: 'Is Creator', + displayName: 'Is creator', name: 'is-creator', plugin: 'admin', - handler: user => ({ created_by: user.id }), + handler: user => ({ 'created_by.id': user.id }), + }, + { + displayName: 'Has same role as creator', + name: 'has-same-role-as-creator', + plugin: 'admin', + handler: user => ({ + 'created_by.roles': { + $elemMatch: { + id: { + $in: user.roles.map(r => r.id), + }, + }, + }, + }), }, ], }; diff --git a/packages/strapi-connector-bookshelf/lib/mount-models.js b/packages/strapi-connector-bookshelf/lib/mount-models.js index 0462f10ab7..e2e0e52ed2 100644 --- a/packages/strapi-connector-bookshelf/lib/mount-models.js +++ b/packages/strapi-connector-bookshelf/lib/mount-models.js @@ -117,13 +117,11 @@ module.exports = ({ models, target }, ctx) => { if (!definition.uid.startsWith('strapi::')) { definition.attributes['created_by'] = { - autoPopulate: false, model: 'user', plugin: 'admin', }; definition.attributes['updated_by'] = { - autoPopulate: false, model: 'user', plugin: 'admin', };