1、權限的設計概念
JEECG封裝了完善的用戶權限模塊,支持菜單權限,列表權限,表單權限,數據權限。數據權限功能已實現極致: 支持行級、列級、字段級控制,實現不一樣人看不一樣數據,不一樣人對同一個頁面操做不一樣字段。系統按鈕權限和表單權限原來是正控制,只有受權的人才有權限,未受權看不到對應按鈕;(admin擁有超級權限,不受控制)git
用戶權限模塊:指用戶信息及用戶權限信息數據。一個用戶能夠分配多個角色;也能夠隸屬於多個組織結構;多個組織機構狀況下,登陸須要選擇機構登陸,方便數據權限控制。多個組織登陸狀況以下:github
管理員能夠對用戶進行管理,若是用戶已經失效能夠直接凍結該用戶禁止其登陸,新開的用戶須要激活後才能登陸數據庫
2、權限的對象
JEECG權限設計,採用用戶、角色、菜單、組織機構來進行組建,角色爲主要受權對象,組織機構能夠分配角色。 菜單類型分兩種:權限類型和菜單類型less
用戶管理,用戶能夠分配多個角色;也能夠隸屬於多個組織機構,多個組織機構狀況下,登陸須要選擇機構登陸,方便數據權限控制;測試
角色是權限組單位,經過角色管理菜單權限。網站
菜單管理,用來作首頁菜單管理和權限管理,權限包括:菜單訪問權限、按鈕權限、表單權限、數據權限。編碼
組織機構管理,支持集團模式多個分公司,第一級默認是公司類型,從二級開始可設置部門和崗位,部門和崗位經過類型區分;組織機構能夠單獨設置角色;url
3、數據權限規則
列表數據權限,主要經過數據權限控制行數據,讓不一樣的人有不一樣的查看數據規則; 好比: 銷售人員只能看本身的數據;銷售經理能夠看全部下級銷售人員的數據;財務只看金額大於5000的數據等等;hibernate
序號 | 類型 | 規則字段區別 | 說明 |
---|---|---|---|
1 | 編碼方式 | 規則字段是駝峯寫法,對應hibernate實體的字段 | 編碼模式(經過代碼生成器生成代碼) |
2 | Online方式 | 規則字段是下劃線寫法,對應表的字段 | Online模式(在線表單模式,無代碼) |
注意:數據權限配置,規則值能夠填寫系統上下文變量(當前登陸人信息),從而根據當前登陸人信息進行權限控制。
編碼 | 描述 |
---|---|
sys_user_code | 當前登陸用戶登陸帳號 |
sys_user_name | 當前登陸用戶真實名稱 |
sys_date | 當前系統日期 |
sys_time | 當前系統時間 |
sys_company_code | 當前登陸用戶公司編號 |
sys_org_code | 當前登陸用戶部門編號 |
規則值,配置寫法以下:#{sys_user_code}
4、如何生成代碼
首先登陸網站===>在線開發===>Online表單開發===>建立表單
建立表單後須要先同步到數據庫,而後點擊代碼生成 。能夠根據彈出的對話框選擇代碼生成的存放位置。而後copy到項目中。
另一種生成方案是使用Java中的GUI生成代碼。『官方建議使用Online生成』。直接run As test包下的JeecgOneGUI.java 文件而後彈出錄入界面
若是是基礎功能不建議選擇生成代碼。直接在線生成就能夠,若是有須要作開發API接口給前臺使用的則須要生成代碼放到項目中以便增長註解【API採用Swagger】,只有在方法上加入
@ApiOperation
註解才能在Swagger中顯示。
5、功能測試
建立表單後而且同步到數據庫後能夠在表單後面看到一個***功能測試***按鈕。點擊功能測試按鈕看到的界面就是咱們須要的生成的界面,建立表的時候風格通常都是默認不作選擇
6、具體的數據權限控制
1.按鈕權限規則控制
列表按鈕權限控制,主要是控制列表上按鈕、操做連接的隱藏;按鈕權限配置後,默認未受權用戶都看不到,具體配置在菜單中配置如圖
頁面控件編碼
operationCode
:<t:dgToolBar title="填報日誌" icon="icon-add" url="tBussDailyLogController.do?goAdd" operationCode="#db_generate_input" funname="add"></t:dgToolBar> <t:dgToolBar title="日誌點評" icon="icon-edit" url="tBussDailyLogController.do?goUpdate" operationCode="#db_generate_form" funname="update"></t:dgToolBar> <t:dgToolBar title="查看" icon="icon-search" url="tBussDailyLogController.do?goUpdate" funname="detail"></t:dgToolBar>頁面控件編碼能夠自定義,把定義好的編碼填寫到 【菜單欄目的】-【頁面控件】
填寫完畢後點擊【角色管理】能夠根據角色來選擇是否隱藏按鈕【隱藏不大勾,打勾不隱藏】
2.列表數據權限用法
數據權限菜單的配置
建立數據權限類型菜單(注意:列表訪問連接和數據請求連接不是一個,此爲加載數據請求) 注意: 這裏很容易配置錯誤,必定注意【datagrid針對列表數據控制?後面要跟datagrid】 用戶數據請求地址:userController.do?datagrid
列數據權限控制
若是想隱藏某一列的值,不想讓某類用戶看到該列的值可使用以下方法
請看操做步驟
而後給角色分配權限
使用角色爲 經理的用戶進行登陸看到的效果以下:
而後給經理角色【頁面權限規則】 工做日誌字段隱藏 打勾
打勾完畢後,再次使用角色爲 經理的用戶進行登陸看到的效果以下:
若是隻想讓登陸用戶只能看到本身的數據能夠進行以下操做
首先須要在菜單欄目中進行設置
設置完畢後進入角色管理,給角色分配權限
使用員工角色登陸而後查看顯示效果以下
再次給員工角色分配權限,打上勾
而後再次使用員工角色登陸而後查看顯示效果以下