引导新的 Strapi 角色权限

Dan*_*ski 1 javascript node.js graphql strapi

问题是关于Strapi 中的角色权限- 开源 Node.js Headless CMS

如何创建相对于AuthenticatedPublic角色的新的 Strapi 角色权限?我想permissions在 bootstrap 函数中创建所有这些相同的新角色。我不确定应该如何payload创建新的role.

const payload = ?
strapi.plugins['users-permissions']
    .queries('role', 'users-permissions')
    .create(payload)
Run Code Online (Sandbox Code Playgroud)

我检查了相关的 stackoverflow 问题,但不是关于创建新的 Strapi 角色权限 Bootstraping Strapi 角色权限

主要问题

  1. 如何寻找解决上述问题的最佳方法?

附带问题

  1. 是否有记录的架构,plugins或者services如果是,在哪里可以找到它?
  2. 哪个api更好用servicesorm来自queries实例?

Jim*_*RIE 9

好吧,既然数据结构可以改变,我会给你提供访问有用数据的方法,这将帮助你处理你想要的。

在此文件中,您将找到创建角色的服务函数和初始化权限的函数。

您可以在bootstrap.js文件中编写代码。

  1. 您将不得不调用让您生成权限对象的函数
const lang = 'en';
const plugins = await strapi.plugins[
  'users-permissions'
].services.userspermissions.getPlugins(lang);

const permissions = await strapi.plugins[
  'users-permissions'
].services.userspermissions.getActions(plugins);
Run Code Online (Sandbox Code Playgroud)
  1. 自定义这个对象(permissions对象)以允许你想要的控制器功能。

  2. 最后创建你的角色

const role = {
  name: 'NewRole',
  description: 'can be an empty string',
  permissions, // That is the step 1/2 object
  users: []
};

await strapi.plugins[
  'users-permissions'
].services.userspermissions.createRole(role);
Run Code Online (Sandbox Code Playgroud)