管理面板 RBAC 系统已更新

页面摘要: Strapi 5 移除了 content-manager_rbacManager redux store 区块,改为使用常规的权限系统以及更新后的 useRBAC hook。

在 Strapi 5 中,作为管理面板 redux store 一部分的 content-manager_rbacManager 已被移除,改为使用常规的权限系统。此外,useRBAC hook 也进行了更新。

本页面是破坏性变更数据库的一部分,提供有关该破坏性变更的信息,以及从 Strapi v4 迁移到 Strapi 5 的附加说明。

破坏性变更说明

在 Strapi v4 中

权限通过 redux store 的 content-manager_rbacManager 区块处理,如下面的通用示例所示:

const cmPermissions useSelector(state => state['content-manager_rbacManager'])
const { allowedActions } = useRBAC({
	main: [{ action: 'admin::something.main', subject: null }]
})

const canMain = allowedActions.canMain

在 Strapi 5 中

content-manager_rbacManager 已被移除,改为使用常规的权限系统,这意味着 useRBAC hook 的使用方式有所不同,如下面的通用示例所示:

const { allowedActions } = useRBAC([
  { action: 'admin::something.main', subject: null }
])

const canMain = allowedActions.canMain

迁移

本节汇总了关于该破坏性变更的有用说明和操作步骤。

说明

  • 提供了新的 RBAC API,用户可以利用中间件系统与调用进行交互(请参阅 贡献者文档)。
  • 更多信息可在贡献者文档的 获取权限 和 身份验证 章节中找到。

手动迁移

在 Strapi v4 中通过 hook 接入 redux store 来调整 RBAC 权限的插件开发者,需要根据上述变更更新他们的代码。