diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 0d4f4381..b46a73fa 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,7 +1,7 @@ /* * @Author: yubaolee | ahfu~ <954478625@qq.com> * @Date: 2023-08-12 10:48:24 - * @LastEditTime: 2023-08-27 22:21:32 + * @LastEditTime: 2023-09-10 19:10:40 * @Description: * @ * @Copyright (c) 2023 by yubaolee | ahfu~ , All Rights Reserved. @@ -93,7 +93,7 @@ module.exports = { title: '权限控制', // 必要的 sidebarDepth: 1, // 可选的, 默认值是 1 collapsable: false, - children: ['apiauth', 'logininfo', 'dataprivilege', 'datapropertyrule'], + children: ['moduleauth','apiauth', 'logininfo', 'dataprivilege', 'datapropertyrule'], }, 'form', { diff --git a/docs/core/moduleauth.md b/docs/core/moduleauth.md new file mode 100644 index 00000000..44faf1aa --- /dev/null +++ b/docs/core/moduleauth.md @@ -0,0 +1,39 @@ +# 模块/菜单权限 + +网络上流行的经典的权限设计是【主体】- 【领域】 - 【权限】( who、what、how问题原型 ) 的设计思想,其中: + +【主体】可以是用户,可以是角色,也可以是一个部门 + +【领域】可以是一个模块,可以是一个页面,也可以是页面上的按钮 + +【权限】可以是“可见”,可以是“只读”,也可以是“可用”(如按钮可以点击) + +为了简化程序开发,在OpenAuth.Net中去掉了权限的控制,简化为【主体】- 【领域】的模式,且【主体】限定为角色。即只能给角色分配模块和按钮,不能直接分配给用户账号或部门。且一旦分配即表示该角色拥有操作该模块(按钮)的权限。结构如下 + +@startuml +skinparam handwritten true +skinparam backgroundColor #EEEBDC + + +用户User o-- 角色Role +用户User o-- 部门Org +角色Role o-- 模块Module + +'角色Role o-left- 部门Org +模块Module o-- 菜单ModuleElement + +模块Module o-- 数据字段 + +@enduml + +## 具体操作 + +添加好模块/菜单后,在【角色管理】功能中,选中一个角色,点击【为角色分配模块】,点击下一步会依次弹出: + +1. 为角色分配模块对话框,用于分配该角色可以访问哪些功能; +2. 为角色分配菜单对话框,用于分配该角色可以操作哪些菜单; +3. 为角色分配可见字段对话框,用于分配该可以查看哪些字段; + +![20230910193521](http://img.openauth.net.cn/20230910193521.png) + +