<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                列表數據權限用法 === **目錄索引:** - 功能說明 - 數據權限兩種編碼模式 - 數據權限規則篇 1. 當前用戶上下文變量 2. 建表規范(系統標準字段) 3. 組織機構郵編規則 - 案例一(行級別 – 限制demo用戶不能看admin的數據) - 案例二(行級權限 - 登錄人只能看自己數據) - 案例三(行級權限 - 登錄人可看下級所有人數據) - 案例四(列級別權限 – 不同的人看到數據列表不同的列) - 采用Minidao方式權限集成 1. 權限配置規則 2. 權限生成SQL規則獲取方法 # JEECG 數據權限用法 ## 一、功能說明 列表數據權限,主要通過數據權限控制行數據,讓不同的角色有不同的訪問規則; 比如: 銷售人員只能看自己的數據;銷售經理可以看所有下級銷售人員的數據;財務只看金額大于5000的數據等等; ## 二、數據權限兩種編碼模式 ### 數據權限控制分兩種模式(根據編碼風格) **模式一:** 列表查詢采用hibernate方式編碼,hibernate實體,查詢采用Jeecg的查詢過濾器。 **實現原理:**數據權限規則,是通過查詢過濾器注入的,JEECG講數據權限規則以Hiberate方式注入到查詢條件中;該方式比較簡單,不需要額外編碼,直接權限配置即可; **模式二:** 列表查詢采用minidao方式(純sql)編碼,此方式比較復雜需要專題介紹 **實現原理:**Jeecg會將數據權限規則,組織成純sql片段,放在request線程中,需要開發者,手工編碼注入查詢邏輯中,此模式復雜會有專題講解。 ``` 規則字段配置說明(非常重要): 模式一:[規則字段]對應著hibernate實體的字段,一般是駝峰寫法 模式二:[規則字段]對應著數據庫表的字段,一般是帶下劃線 ③條件規則:大于/大于等于/小于/小于等于/等于/包含/模糊/不等于 ④規則值:指定值 ( 固定值/系統上下文變量 ) ``` ## 三、數據權限規則篇 ### 1.當前用戶上下文變量 注意:數據權限配置,規則值可以填寫系統上下文變量(當前登錄人信息),從而根據當前登錄人信息進行權限控制。 | 編碼| 描述 | | -------- | ----- | | sys_user_code| 當前登錄用戶登錄賬號| | sys_user_name| 當前登錄用戶真實名稱| | sys_date| 當前系統日期| | sys_time| 當前系統時間| | sys_company_code| 當前登錄用戶公司編號| | sys_org_code| 當前登錄用戶部門編號| 規則值,配置寫法如下:#{sys_user_code} ### 2.建表規范(系統標準字段) 如果需要通過當前登錄人,進行數據權限控制,則業務表必須有以下系統標準字段;數據添加和編輯,jeecg會通過攔截器自動注入操作人的信息。 比如:創建人,創建時間,創建人所屬部門、創建人所屬公司,有了這些標準字段,就可以通過當前登錄人進行數據隔離控制; | 字段英文名| 字段中文名| | -------- | ----- | ---- | | CREATE_BY| 系統用戶登錄賬號| | CREATE_NAME| 系統用戶真實名字| | SYS_ORG_CODE| 登錄用戶所屬部門| | SYS_COMPANY_CODE| 登錄用戶所屬公司| ### 3.組織機構郵編規則 JEECG組織機構支持無線層級,上下級關系通過組織機構編碼實現,組織機構編碼規則類似郵編方式,看下圖; 郵編規則優勢: 郵編規則,上下級編碼固定規律,便于定位下級和上級; ![](https://img.kancloud.cn/12/d7/12d7c96e0edbbb3ccef6b75cb37573b8_1021x560.png) ## 四、案例一(行級別 – 限制demo用戶不能看admin的數據) ### 1.數據權限案例 通過權限控制,限制demo角色用戶,無法查看用戶列表中admin這條數據。 ![](https://img.kancloud.cn/81/c9/81c985d29044f70a58da0e0768eef625_896x496.png) ### 2.數據權限菜單配置 創建數據權限類型菜單(注意:列表訪問鏈接和數據請求鏈接不是一個,此為加載數據請求) 注意: 這里很容易配置錯誤,一定注意 用戶數據請求地址:userController.do?datagrid ![](https://img.kancloud.cn/36/ca/36ca81775e360ef692fc94c0ad492e46_727x576.png) ![](https://img.kancloud.cn/5f/0e/5f0e725fc049fabefa0079a88ed356cc_1369x667.png) ### 3.數據權限控制規則配置 **配置1、條件規則為非自定義sql表達式** ![](https://img.kancloud.cn/e4/e3/e4e3d6a383fd2330ecda48f73eb6516b_729x488.png) 填寫說明: ①規則名稱:隨意定義 ②規則字段:[字段名稱] **注意: 模式一:[字段名稱]對應著hibernate實體的字段 模式二:[字段名稱]對應著數據庫表的字段** ③條件規則:大于/大于等于/小于/小于等于/等于/包含/模糊/不等于 ④規則值:指定值 ( 固定值/系統上下文變量 ) **例如:** 規則名稱:用戶數據限制 規則字段:userName 條件規則:不等于 規則值:admin 以上表單權限規則表示將動態追加sql條件: userName !=‘admin’的條件,即按照用戶賬號!=admin進行了數據權限控制。 **配置2、條件規則為自定義sql表達式,規則值為自定義sql的條件語句** **例如:** 要想篩選年齡小于18歲且身高大于180的數據即直接配置規則值為: age < 18 and height >180 其中age和height均為數據庫表字段名 ![ ](https://img.kancloud.cn/11/fd/11fdafe9d17a6c4e803e735bd1b42bc1_910x596.png) ### 4.數據權限授權角色 ①菜單訪問授權 用戶管理菜單; ②數據權限授權 用戶列表數據數據菜單,數據規則權限授權; ![](https://img.kancloud.cn/37/aa/37aa9ea3147b3a8b058dd2cc820d8081_1379x665.png) ### 5.測試數據權限效果 采用demo用戶(授權demo角色)登錄系統,訪問用戶列表, 效果如下,看不到admin用戶數據,說明權限生效 ![](https://img.kancloud.cn/5e/d2/5ed23f9824c7bc7655afb44bf560ee38_894x404.png) ## 五、案例二(行級權限 - 登錄人只能看自己數據) ### 1.數據權限案例 通過登錄人賬號,進行數據權限過濾,限制銷售人員只能看自己的業務數據。 通過admin查看“列表標簽”功能如下(數據提前準備,分別采用demo、scott兩個用戶創建) ![](https://img.kancloud.cn/05/45/0545ac5d15fdcdafa67cf65640db9349_1508x595.png) ### 2.數據權限規則配置 控制請求: jeecgListDemoController.do?datagrid ![](https://img.kancloud.cn/b9/a8/b9a8026081a95703925404a292049eca_1377x615.png) ![](https://img.kancloud.cn/16/ac/16ac6ba0f5c59b92a8e38c2e1ee02af7_730x491.png) ### 3.數據權限授權角色 ①菜單訪問權限 列表標簽菜單; ②數據權限菜單 Jeecg demo數據權限列表,數據權限規則授權; ![](https://img.kancloud.cn/2f/be/2fbef5c61afcd9d2a4f6d67e2fa04e61_1368x577.png) ### 4.測試數據權限效果 采用demo用戶(授權demo角色)登錄系統,查看菜單【常用實例-列表標簽】功能,只能看到自己的數據,說明權限生效。 ![ ](https://img.kancloud.cn/12/41/12418da542d474ede55a0cb7ec51db39_1417x397.png) ## 六、案例三(行級權限 - 登錄人可看下級所有人數據) ### 1.數據權限案例 創建三個用戶scott、lisi、demo,設置demo、scott為銷售人員崗位,設置lisi為銷售經理屬于demo和scott上級,通過權限配置lisi可看下級和自己的業務數據; 采用admin用戶,查看“列表標簽”菜單,可以看所有用戶數據 ![](https://img.kancloud.cn/00/7b/007b16adfc0859db4fa212759e36e7df_1202x381.png) ### 2.數據規則配置原理 通過登錄人所屬部門,進行數據權限配置,查詢業務數據通過{創建部門編碼}字段,與{當前登錄人部門編碼}進行模糊匹配; 例如:當前登錄人所屬部門編碼:A01A02 因為JEECG設計組織機構編碼都是按照郵編方式組織上下級。 ![](https://img.kancloud.cn/90/c5/90c544b9b74257d3c9527aebae0a5935_704x118.png) 他的下級部門可以用SQL這樣表示: sysOrgCode like ‘A01A02%’ ### 3.基礎數據準備 ①用戶分配組織機構 針對demo、scott用戶分配銷售人員崗位,針對lisi用戶分配銷售經理崗位 ![](https://img.kancloud.cn/49/84/498441f4674a96ec78e5f25fe6f50635_496x143.png) ②組織機構規則如下,lisi為demo、scott上級。 ![](https://img.kancloud.cn/a6/a7/a6a7f4a3191857d523164ccb3231a055_709x179.png) ③錄入業務數據 使用scott、demo兩個用戶錄入數據 ![](https://img.kancloud.cn/ae/a5/aea5951c25d08cd2d0299960f786881d_1018x221.png) ### 4.數據權限規則配置 ![ ](https://img.kancloud.cn/6a/bc/6abcc7cd274ecfd0c80590f117c6f359_1353x555.png) ![](https://img.kancloud.cn/6b/83/6b83abd712a1041cce54b140062c7368_731x499.png) 說明:通過模糊規則,類似 like ‘{當前登錄人組織機構}%’ ### 5.數據權限授權角色 設置lisi用戶為經理角色,對角色分配數據權限 ![](https://img.kancloud.cn/5e/79/5e7957a072863743c7940c8fe0842f13_1373x584.png) ### 6.測試數據權限效果 通過lisi用戶登錄后臺,查看“列表標簽”功能,發現可以看到scott、demo用戶錄入的數據,說明數據權限生效。 ![](https://img.kancloud.cn/a9/36/a936be80463e25890f6981a13363f3b5_1395x343.png) ## 七、案例四 (列級別權限 – 不同的人看到數據列表不同的列) ### 1.功能說明 列級別權限,主要針對數據列字段進行權限控制,從而實現不同角色可以有不同列字段查看權限; ### 2.列級別權限案例 通過列數據權限,限制demo角色,不能查看列字段[電話] 通過admin用戶查看“標簽列表”功能,界面如下: ![](https://img.kancloud.cn/79/b5/79b5202ec2a55a85bf1ece27b9143053_1259x355.png) ### 3.列表頁面編碼規則 設置標簽參數field,對應頁面控制編碼; ![](https://img.kancloud.cn/c5/fe/c5fead2a5b3241e437b72be0266b6724_1118x320.png) ### 4.列表行權限控件配置 ![](https://img.kancloud.cn/84/bc/84bcdfef148cce67299ea88dc8ec9c7e_1578x598.png) ![](https://img.kancloud.cn/2e/20/2e20ed231a86232d260e66a628f90975_910x605.png) ![](https://img.kancloud.cn/0e/51/0e51bebeb453108b7b304093938f77bc_715x91.png) 工資查看權限錄入同之 ### 5.列表行數據權限授權角色 ![](https://img.kancloud.cn/98/7a/987a96dc8711e859d8f5f4139a85b4ab_1498x635.png) ### 6.測試列表行數據權限效果 采用demo用戶(授權demo角色)登錄系統,訪問“標簽列表”, 效果如下,已經看不到手機號字段,說明列表級權限控制成功。 ![](https://img.kancloud.cn/fc/cc/fcccc6060efb2534aa89fbc2b8225822_1357x392.png) ## 八、采用Minidao方式權限集成 ### 1.權限配置規則 說明:SQL方式數據權限規則一般采用Minidao實現數據操作,當然也可以是其他純SQL方式,配置對應數據庫表的字段,非實體字段 ![](https://img.kancloud.cn/fb/70/fb709e9b0aaaa5e7665fc0670d9638ea_1424x720.png) ### 2.權限生成SQL規則獲取方法 通過工具類org.jeecgframework.core.util.JeecgDataAutorUtils ![](https://img.kancloud.cn/8d/6b/8d6b7f5e02001e43e6d6cccbe07da5fe_697x393.png) 通過方法:JeecgDataAutorUtils.loadDataSearchConditonSQLString(),可以直接獲取配置的權限對應的sql規則。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看