42 lines
922 B
JavaScript

'use strict';
const PUBLIC_ROLE_FILTER = { role: { type: 'public' } };
module.exports = ({ strapi }) => ({
/**
* Find permissions associated to a specific role ID
*
* @param {number} roleID
*
* @return {object[]}
*/
async findRolePermissions(roleID) {
return strapi.db.query('plugin::users-permissions.role').load({ id: roleID }, 'permissions');
},
/**
* Find permissions for the public role
*
* @return {object[]}
*/
async findPublicPermissions() {
return strapi.db.query('plugin::users-permissions.permission').findMany({
where: PUBLIC_ROLE_FILTER,
});
},
/**
* Transform a Users-Permissions' action into a content API one
*
* @param {object} permission
* @param {string} permission.action
*
* @return {{ action: string }}
*/
toContentAPIPermission(permission) {
const { action } = permission;
return { action };
},
});