@pubinfo-pr/module-rbac
v0.238.1
Published
Pubinfo 的权限与后台管理模块。它既提供 RBAC 相关页面和组件,也负责根据配置注册权限管理路由、初始化路由视图数据,并建立模块内部的 WebSocket 同步能力。
Readme
@pubinfo/module-rbac
Pubinfo 的权限与后台管理模块。它既提供 RBAC 相关页面和组件,也负责根据配置注册权限管理路由、初始化路由视图数据,并建立模块内部的 WebSocket 同步能力。
它在做什么
- 提供
rbac()模块注册函数 - 支持两种页面来源:
- 本地静态页面配置
dynamic资源管理驱动的动态页面
- 注册并过滤一整套后台管理路由
- 初始化视图路由数据和 WebSocket 管理器
- 导出常用选择器、资源选择组件、字典工具、路由系统工具和 view store
基本用法
import { rbac } from '@pubinfo/module-rbac';
export function setupRbac() {
return rbac({
request: basic,
id: 'RBAC',
pages: 'dynamic',
});
}如果使用本地注册路由:
rbac({
request: basic,
sort: 100,
pages: {
AuthorityManage: {
Resource: true,
Role: true,
},
},
});页面范围
从路由定义看,模块默认覆盖这些后台域:
AuthorityManage: 资源、角色、角色组、数据权限、组织、用户、租户SystemManage: 字典、岗位、区域、分组SettingManage: 主题、布局、页面动画、分页、菜单、Tabbar、工具栏、面包屑、其他设置SafeManage: 黑白名单、安全设置、水印设置LogManage: 登录历史、操作历史
主要导出
rbacResourceSelectorOrgUserSelector相关导出useWebSocketManageruseViewStore- 字典工具
- 路由系统工具
RbacOptions/RbacPages
工作方式
- 如果
pages !== 'dynamic',模块会调用defineAsyncRoutes()注入过滤后的本地路由 - 模块启动时会执行
viewStore.initializeRouteData() - 同时会初始化
useWebSocketManager(),用于模块内部实时同步 - 之后再异步加载
routeSystem完成路由系统初始化
适用场景
适合需要完整后台权限管理能力的 Pubinfo 项目,而不只是简单的按钮鉴权。这个模块本质上是“权限系统 + 后台管理页面集合”。
