【JEECG技術博文】JEECG 簡單例項講解許可權控制
JEECG簡單例項講解許可權控制
作者: 許國傑
一、業務背景
某公司要實現一個日誌系統,用來了解員工的工作量飽和情況。
二、需求
1、角色分為:員工、經理兩種。
2、員工每天在日誌系統中填報工作總結,然後經理進行點評。
3、表單內容包含:姓名、日期、工作總結、個人筆記、日誌點評。
三、業務許可權描述
1、 員工可以進行日誌填報、檢視操作。(按鈕控制元件許可權)
2、 經理可以進行日誌點評、檢視操作。(按鈕控制元件許可權)
3、 個人筆記內容只對填報本人可見,經理不能看到個人筆記內容。(表單欄位許可權)
4、 經理只可以編輯日誌點評欄位。(表單欄位許可權)
5、 員工查詢出的資料列表列為
姓名、日期、個人筆記、日誌點評(資料列許可權)
6、 經理查詢出的資料列表列為
姓名、日期、日誌點評(資料列許可權)
7、 員工只可以看到自己填報的日誌記錄。(資料行許可權)
四、開發過程
1、 建立表單:
2、 編輯頁面屬性
3、 同步資料庫
4、 測試查看錶單內容如下
5、 生成程式碼
6、 把程式碼copy到專案中。
7、 新建兩個角色:員工、經理;新建三個使用者:員工小A
8、 配置選單
9、 給員工與經理角色分配選單
使用王經理登入,測試可以看到工作日誌選單了。但要求的許可權還沒有進行控制。而且生成的頁面樣式有點問題。
10、 調整頁面樣式,修改按鈕文字、刪除不用的按鈕。
五、許可權配置
許可權描述如下
1、 員工可以進行日誌填報、檢視操作。(按鈕控制元件許可權)
配置日誌點評按鈕不可見,並對員工角色起作用。
A、在程式碼中,日誌點評按鈕增加operationCode="update"
B、在選單管理中,為工作日誌選單加控制元件許可權:日誌點評隱藏
C、在角色管理中,員工角色使用此許可權控制。
D、測試,可以發現使用員工A和員工B登入已經看不到日誌點評了。
2、 經理可以進行日誌點評、檢視操作。(按鈕控制元件許可權)
配置日誌填報按鈕不可見,並對經理角色起作用。
過程同上一項。
3、 員工查詢出的資料列表列為
姓名、日期、個人筆記、日誌點評
經理查詢出的資料列表列為
姓名、日期、日誌點評(資料列許可權)
配置個人筆記列隱藏,並對經理角色起作用。
A、 在員工日誌下新增控制元件許可權。
B、 對經理角色使用此許可權。
C、 測試如下,王經理登入已經看不到個人筆記一列了。
4、 員工只可以看到自己填報的日誌記錄。(資料行許可權)
配置datagrid操作createBy =#{ sys_user_code}
A、新增訪問型別的選單。注意:一定要是訪問型別。路徑為列表查詢action.
B、 對新加的訪問型別選單增加資料許可權。
C、對員工角色使用此資料許可權。
D、 分別使用員工A、員工B 錄入資料。測試每個人只可以看到自己錄入的資料。
5、 個人筆記內容只對填報員工可見,經理不能看到個人筆記內容。(表單欄位許可權)
配置個人筆記表單欄位不可見,並對經理角色起作用。
A、 在新增頁面,為點評行加上t:authFilter標記 (頁面底部加)
B、 新增訪問型別選單
C、 對新增加的選單增加控制權限
D、 對員工角色使用該許可權控制。
E、 測試一下,發現日誌點評在日誌填報頁面已經沒有了。
6、 日誌點評頁面,經理只可以編輯日誌點評欄位。
日誌點評頁面把其它欄位都使用readonly屬性。
這個功能說明:雖然許可權配置起來很方便,但改變頁面,或方法有時更方便。
完成!