平臺權限設計總覽
===
**目錄索引:**
- 權限概念
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.用戶管理
用戶管理,用戶可以分配多個角色;也可以隸屬于多個組織機構,多個組織機構情況下,登錄需要選擇機構登錄,方便數據權限控制;

### 2.角色管理
角色是權限組單位,通過角色管理菜單權限。

### 3.菜單管理
菜單管理,用來做首頁菜單管理和權限管理,權限包括:菜單訪問權限、按鈕權限、表單權限、數據權限。

### 4.組織機構管理
組織機構管理,支持集團模式多個分公司,第一級默認是公司類型,從二級開始可設置部門和崗位,部門和崗位通過類型區分;組織機構可以單獨設置角色;

- 總體介紹
- 快速了解
- 平臺優勢
- 技術支持
- 社區榮譽
- 開發環境準備
- 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技術方案