JEECG平台權限設計


JEECG平台權限設計

鏈接存放位置:https://github.com/PlayTaoist/jeecg-lession/tree/master/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86-lession

一、權限的設計概念

JEECG封裝了完善的用戶權限模塊,支持菜單權限,列表權限,表單權限,數據權限。數據權限功能已實現極致: 支持行級、列級、字段級控制,實現不同人看不同數據,不同人對同一個頁面操作不同字段。系統按鈕權限和表單權限原來是正控制,只有授權的人才有權限,未授權看不到對應按鈕;(admin擁有超級權限,不受控制)

用戶權限模塊:指用戶信息及用戶權限信息數據。一個用戶可以分配多個角色;也可以隸屬於多個組織結構;多個組織機構情況下,登錄需要選擇機構登錄,方便數據權限控制。多個組織登錄情況如下:

1

管理員可以對用戶進行管理,如果用戶已經失效可以直接凍結該用戶禁止其登錄,新開的用戶需要激活后才能登錄

2

二、權限的對象

JEECG權限設計,采用用戶、角色、菜單、組織機構來進行組建,角色為主要授權對象,組織機構可以分配角色。 菜單類型分兩種:權限類型和菜單類型

  • 菜單類型: 菜單類型的菜單,在首頁菜單展示和訪問使用
  • 權限類型: 權限類型的菜單,在首頁菜單不做展示,只做權限控制使用

1.用戶管理

用戶管理,用戶可以分配多個角色;也可以隸屬於多個組織機構,多個組織機構情況下,登錄需要選擇機構登錄,方便數據權限控制;

3

2.角色管理

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

4

3.菜單管理

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

5

4.組織機構管理

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

6

三、數據權限規則

一、功能說明

列表數據權限,主要通過數據權限控制行數據,讓不同的人有不同的查看數據規則; 比如: 銷售人員只能看自己的數據;銷售經理可以看所有下級銷售人員的數據;財務只看金額大於5000的數據等等;

二、數據權限分兩大類型

序號 類型 規則字段區別 說明
1 編碼方式 規則字段是駝峰寫法,對應hibernate實體的字段 編碼模式(通過代碼生成器生成代碼)
2 Online方式 規則字段是下划線寫法,對應表的字段 Online模式(在線表單模式,無代碼)

三、數據權限規則篇

1.當前用戶上下文變量

注意:數據權限配置,規則值可以填寫系統上下文變量(當前登錄人信息),從而根據當前登錄人信息進行權限控制。

編碼 描述
sys_user_code 當前登錄用戶登錄賬號
sys_user_name 當前登錄用戶真實名稱
sys_date 當前系統日期
sys_time 當前系統時間
sys_company_code 當前登錄用戶公司編號
sys_org_code 當前登錄用戶部門編號

規則值,配置寫法如下:#{sys_user_code}

四、如何生成代碼

首先登錄網站===>在線開發===>Online表單開發===>創建表單

7

創建表單后需要先同步到數據庫,然后點擊代碼生成 。可以根據彈出的對話框選擇代碼生成的存放位置。然后copy到項目中。

另外一種生成方案是使用Java中的GUI生成代碼。『官方建議使用Online生成』。直接run As test包下的JeecgOneGUI.java 文件然后彈出錄入界面

8

如果是基礎功能不建議選擇生成代碼。直接在線生成就可以,如果有需要做開發API接口給前台使用的則需要生成代碼放到項目中以便增加注解【API采用Swagger】,只有在方法上加入@ApiOperation注解才能在Swagger中顯示。

五、功能測試

創建表單后並且同步到數據庫后可以在表單后面看到一個***功能測試***按鈕。點擊功能測試按鈕看到的界面就是我們需要的生成的界面,創建表的時候風格一般都是默認不做選擇

9

10

六、具體的數據權限控制

1.按鈕權限規則控制

列表按鈕權限控制,主要是控制列表上按鈕、操作鏈接的隱藏;按鈕權限配置后,默認未授權用戶都看不到,具體配置在菜單中配置如圖

11

頁面控件編碼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>

頁面控件編碼可以自定義,把定義好的編碼填寫到 【菜單欄目的】-【頁面控件】

填寫完畢后點擊【角色管理】可以根據角色來選擇是否隱藏按鈕【隱藏不大勾,打勾不隱藏】

12

2.列表數據權限用法

數據權限菜單的配置

創建數據權限類型菜單(注意:列表訪問鏈接和數據請求鏈接不是一個,此為加載數據請求) 注意: 這里很容易配置錯誤,一定注意【datagrid針對列表數據控制?后面要跟datagrid】 用戶數據請求地址:userController.do?datagrid

13

列數據權限控制

如果想隱藏某一列的值,不想讓某類用戶看到該列的值可以使用如下方法

請看操作步驟

15

然后給角色分配權限

16

使用角色為 經理的用戶進行登錄看到的效果如下:

17

然后給經理角色【頁面權限規則】 工作日志字段隱藏 打勾

18

打勾完畢后,再次使用角色為 經理的用戶進行登錄看到的效果如下:

19

如果只想讓登錄用戶只能看到自己的數據可以進行如下操作

首先需要在菜單欄目中進行設置

20

設置完畢后進入角色管理,給角色分配權限

21

使用員工角色登錄然后查看顯示效果如下

22

再次給員工角色分配權限,打上勾

23

然后再次使用員工角色登錄然后查看顯示效果如下

24


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM