# 模块/菜单权限 网络上流行的经典的权限设计是【主体】- 【领域】 - 【权限】( 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)