平台权限设计总览
===
**目录索引:**
- 权限概念
1. 功能简述
2. 基本概念
3. 权限模型
4. 权限技巧
- 权限对象
1. 用户管理
2. 角色管理
3. 菜单管理
4. 组织机构管理
# 权限设计介绍
## 一、权限概念
### 1.功能简述
JEECG封装完善的用户权限模块,支持菜单权限,列表按钮权限,表单字段权限、数据权限等。
数据权限功能已实现极致: 支持行级、列级、字段级控制,实现不同人看不同数据,不同人对同一个页面操作不同字段。系统按钮权限和表单权限原来是正控制,只有授权的人才有权限,未授权看不到对应按钮;(admin拥有超级权限,不受控制)
**场景举例: **销售经理可以看下属所有销售人员的数据,销售人员只能看自己的数据。
### 2.基本概念
权限管理模块涉及到的对象有:用户、角色、组织机构和系统资源(包括系统菜单、页面控件、数据资源等)。系统资源以角色为单位进行管理,用户可以拥有多个角色,角色可以被分配给多个用户;组织机构也可以分配多个角色,机构下的人自动继承相关角色。而权限的意思就是对某个资源的某个操作.一般通用的权限管理模块规定:所谓资源即应用系统中提供的要进行鉴权才能访问的资源(比如各类数据,系统菜单);所谓操作即增加、修改、删除、查询等操作。
### 3.权限模型
用户权限模型,指的是用来表达用户信息及用户权限信息的数据模型。即能证明“你是谁?”、“你能访问哪些受保护资源?”。
用户与角色之间构成多对多关系。表示同一个用户可以拥有多个角色,一个角色可以被多个用户所拥有。
角色与资源之间构成多对多关系。表示同一个资源可以被多个角色访问,一个角色可以访问多个资源。
### 4.权限技巧
1.权限拦截排除注解JAuth
@JAuth(auth=Permission.SKIP_AUTH)
具体用法:
[1]. 类注解表示该类下所有请求直接通过权限url拦截器
[2].方法注解表示该方法的请求直接通过权限url拦截器
2.权限拦截支持请求URL(目前支持带一个参数,但格式有要求,不能带等号)
loginController.do?login
loginController.do
- 不支持模式:
loginController.do?name=2
- 带多个参数写法:
autoFormController/af/{表单code}/goUpdatePage.do?id={?}
3.admin 拥有超级权限,不受按钮权限和表单权限控制,受数据权限控制。
4.清理垃圾权限配置SQL脚步
delete from t_s_role_function where functionid not in(select id from t_s_function)
---
## 二、权限对象
JEECG权限设计,采用用户、角色、菜单、组织机构来进行组建,角色为主要授权对象,组织机构可以分配角色。
菜单类型分两种:权限类型和菜单类型
* 菜单类型: 菜单类型的菜单,在首页菜单展示和访问使用
* 权限类型: 权限类型的菜单,在首页菜单不做展示,只做权限控制使用
### 1.用户管理
用户管理,用户可以分配多个角色;也可以隶属于多个组织机构,多个组织机构情况下,登录需要选择机构登录,方便数据权限控制;
![](https://img.kancloud.cn/8e/19/8e19e4ba8d2093829a4a19677b6a09ad_791x495.png)
### 2.角色管理
角色是权限组单位,通过角色管理菜单权限。
![](https://img.kancloud.cn/ed/89/ed89076ee40bd550bb462e7c89af5ca8_913x546.png)
### 3.菜单管理
菜单管理,用来做首页菜单管理和权限管理,权限包括:菜单访问权限、按钮权限、表单权限、数据权限。
![](https://img.kancloud.cn/d9/a6/d9a6f8f17cc22b2cac4bce8a1bafc001_1281x522.png)
### 4.组织机构管理
组织机构管理,支持集团模式多个分公司,第一级默认是公司类型,从二级开始可设置部门和岗位,部门和岗位通过类型区分;组织机构可以单独设置角色;
![](https://img.kancloud.cn/22/99/229980d20a57a59807313e7c960b8cec_941x567.png)
- 总体介绍
- 快速了解
- 平台优势
- 技术支持
- 社区荣誉
- 开发环境准备
- JEECG私服Maven
- 代码结构说明
- 入门开发环境搭建
- 开发工具
- 代码生成器使用
- GUI代码生成器
- Online代码生成器
- P3插件代码生成器
- 代码生成器配置
- 功能介绍
- 权限开发手册
- Online开发权限
- Online表单访问规则
- 列表按钮权限控制
- 列表数据权限控制
- 页面表单权限控制(一对多表)
- 页面表单权限控制(单表)
- 其他
- 二级管理员手册
- 接口权限配置
- 平台权限设计总览
- 编码开发方式
- 列表按钮权限用法
- 列表数据权限用法
- 数据权限自定义SQL
- 表单权限用法
- UI标签库文档
- AuthFilter(页面权限标签)
- Autocomplete(自动补全标签)
- BaseTag(样式和JS引入标签)
- Choose(弹出选择标签)
- ComboTree(下拉树形选择框)
- Datagrid(数据列表标签)
- DepartSelectTag(部门树选择标签)
- DictSelect(数据字典下拉选择框)
- FormValidation(表单提交及验证标签)
- HasPermissionTag(页面权限标签)
- Menu(左侧菜单生成标签)
- MutiLang(国际化标签)
- OrgSelectTag(部门树列表选择标签)
- SelectZTree(Ztree树控件)
- Tabs(选项卡父标签)
- TreeSelectTag树分类标签
- Upload(上传标签)
- UserSelectTag(用户选择标签)
- WebUploader(上传标签)
- 查询构造器
- 查询过滤器
- 高级查询构造器
- 专题功能介绍
- 国际化使用
- 多数据源使用
- 定时任务
- 平台JWT接口文档
- 消息中心
- Online在线开发
- Online二次开发
- Online代码生成
- Online唯一性校验配置
- Online查询机制(数据权限)
- Online树形表单配置
- Online表单填值规则
- Online表单对外接口
- Online表单控件
- Online表单配置
- Online表单高级应用
- Online报表开发
- Online图形报表配置
- Online数据报表配置
- Online移动报表配置
- 自定义表单设计
- 自定义表单权限
- 列表空间权限控制
- 功能介绍
- 常规控件权限控制
- 自定义表单配置
- 自定义表单二次开发
- 自定义表单控件
- 自定义表单数据源
- 自定义表单模板
- 自定义表单配置
- 自定义表单高级应用
- 表单数据维护
- 附录小技巧
- datagrid扩展属性用法
- Formvalid新增属性tiptype的使用
- JEECG单点集成文档
- Jeecg定时任务开发
- JEECG常见问题贴
- Redis与Ehcache切换文档
- Toolbar自定义js参数规则
- UI标签规则
- 列表多表头的设计
- 列表拓展字段展示
- 列表自定义查询条件
- 员工入职开发规范文档V1.0
- 数据列表合计功能
- 登录权限拦截器排除方法
- 组织机构导入功能使用说明
- 表单字段重复校验方法
- JEECG新技术
- 新版UI技术方案