🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### RBAC0由四部分构成: * a、用户(User) * b、角色(Role) 角色里有多个许可id组成的权限集合 * c、会话(Session) * d、许可(Pemission) admin/user/edit ![](https://img.kancloud.cn/bd/79/bd7924788d8fb726ed04ecede52a4e7f_632x273.png) 会话是唯一的,我们可以根据自定义会话规则,如tp会话的规则就是`模块/控制器/方法`, 且在许可表中将存储此会话规则 当用户开始会话时,找出用户的角色,角色里可以拿到有许可里的权限内容集合,拿到后在比较集合中是否有当前会话规则,有则通过 user | id | username | | --- | --- | | 1 | admin| | 2 | lisi | | 3 | wangwu | rule | id | title|name| | --- | --- |---| | 1 | 查看用户列表 |user/user/index| | 2 | 添加用户 |user/user/add| | 3 | 编辑用户 |user/user/edit| | 4 | 删除用户 |user/user/del| | 5 | 删除多个用户 |user/user/multi| | 6 | 权限管理 |auth/rule/index| role | id | name | rules| | --- | --- | ---| | 1 | 超级管理员 | * | | 2 | 管理员1 | 1,2,3,4,5 | | 3 | 管理员2 | 1,6 | 他们是多对多关系 所以可以用中间表将他们关联在一起 user_role | user_id | role_id | | --- | --- | | 1 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 2 |