<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 簡介 數據權限是大家最為需求也是最廣為談資的一個設計理念。我們需要控制不同的角色、機構人員有查看不同數據范圍的權限。如果你動手去設計數據權限,當你去各大平臺、百度、谷歌查找設計思路的時候,會發現很難找到有用的資料,很多設計思路局限性非常大。 為了解決這一類疑難問題,JPower提供了倆種配置方式可配合使用 * web在線配置,達到數據權限自動、動態生效的目的。 * 注解方式,針對一些固定使用的方式,避免大量配置使用 ## 數據權限配置 我們訪問權限管理->數據權限中可配置不同資源的數據權限 1. 在需要的配置的菜單中點擊權限配置,彈出該菜單下的所有配置列表,點擊新增可添加配置 ![](https://img.kancloud.cn/bc/54/bc5457fc2813bfd53b3c8fab55427657_3090x1674.png) ![](https://img.kancloud.cn/d5/83/d5837633476a2627c319ad2c0a74b1f8_3102x1806.png) ![](https://img.kancloud.cn/66/ab/66ab17e7181ae3174d38523cd6f061a7_2006x1210.png) 2. **可見字段**代表數據權限最終返回的字段集合,如果是全部則填 * , 如果只需要指定得字段直接填入需要查詢得字段用逗號分隔即可,例如只需要id和name兩個 字段,則填 `id, name` 3. 之所以可以實現自動配置,就是因為我們指定了Mapper層對應執行的方法。所以我們在**權限類名**中把對應的路徑需要指定正確,不能出錯。例如我們要配置客戶端列表的權限,則在**權限類名**中填入該列表查詢SQL所在的mapper全路徑: ![](https://img.kancloud.cn/90/cf/90cfd532a6a8a57421a051c61eda4f5b_2624x1530.png) 4. 還有一點需要注意的是,若分頁、列表等方法不是自己寫的mapper,而是采用的mybatis-plus提供的方法,沒有自定義的方法名,我們需要跟蹤下代碼,可以看到,自帶的page、list等方法,其實是調用了BaseMapper里的方 法。例如追蹤下面截圖中得mapper層執行得方法 ![](https://img.kancloud.cn/9e/be/9ebee56cd0de7f76e17e71677d185202_1575x523.png) ![](https://img.kancloud.cn/3c/74/3c74a97b188a9ce6f964c1e4e7e93a39_1237x264.png) ![](https://img.kancloud.cn/10/36/1036cdabe21fcc3422a5b71f6a1bfe93_1483x1155.png) 所以我們如果需要配置**權限類名**,只需要在`scope_class`(數據權限類名) 字段中存上`com.wlcb.jpower.dbs.dao.tenant.mapper.selectPage`即可。 5. 當字段**權限類型**等于5(自定義)時,字段**權限值域**數據必須要有值,值輸入我們正常sql得where條件后面得部分即可。例如 ``` login_count > 1 and id = '{userId}' and address in ({roleIds}) ``` * 在這個配置的sql里我使用了占位符 {userId} ,沒錯,這么寫在底層就可以直接獲取到當前登錄用戶的 userId字段,除此之外我們還可以用更多的參數,比如 {orgId} 、{roleId} 、{tenantCode} 、 {loginId} 、 {userName} 等等。 * 這些參數可以參考UserInfo類,這個類得所有字段我們都是可以根據占位符來獲得的。 ![](https://img.kancloud.cn/c2/34/c234148b2d7e6e7c34ab2021e2d1112d_1221x1152.png) * 需要注意得是如果我們要使用roleIds字段時,我們得自定義sql部分必須是要`in`查詢。例如`role_id in {roleIds}` 6. **所有角色都執行**當配置為**是**時,就沒有必要再對該條數據權限進行角色權限分配了,因為所有得角色都會執行該條數據權限,這樣我們對一些懶人用戶省去了很多配置。 7. 那么下面,我們就需要對我們剛才配置得數據權限分配角色了,我們在 `權限管理->角色管理` 中進行角色得權限分配。 ![](https://img.kancloud.cn/0e/06/0e0615ae2165f625a5a8c92fb9ff0054_3058x1248.png) ![](https://img.kancloud.cn/ee/d4/eed4a76cc571a8fb13f51e0c0f5f85f4_3568x1794.png) 點擊左側菜單時,右邊會顯示我們剛才配置好的數據權限列表,選中我們剛才配置好的數據權限,然后點擊“確定“就配置完成了。 8. 配置好之后,啟動工程,我們使用剛才賦權的角色調用登錄接口獲取到token,使用獲取到的token再調用我們配置好的數據權限mapper所對應的接口。 可以看到接口只返回了3條數據。 ![](https://img.kancloud.cn/08/7a/087a282008d92a662e09d7f316cc277c_678x500.png) 控制臺的打印的sql中的where條件部分也有當前登錄用戶的過濾條件 ![](https://img.kancloud.cn/81/1b/811b30953278a2a403e9d84f6d10125b_3032x189.png) 下面我們修改下數據權限配置,配置為自定義sql再進行一次測試。 ![](https://img.kancloud.cn/51/a6/51a60161e098f3b8a73a5174b88bd2c6_3007x369.png) 無需重啟服務,我們再使用剛才的用戶重新調用接口獲取新的token,使用新token再次調用我們剛才的接口。 可以看到接口只返回了1條數據。 ![](https://img.kancloud.cn/e2/e9/e2e9939768112ac6550ebc0fd6ddfbdf_689x468.png) 控制臺的打印的sql中的where條件部分正好是我們剛才自定義的sql部分 ![](https://img.kancloud.cn/7c/ec/7cecaee840023aff161adf13aa897d37_3071x167.png) ## 注意項 * **超級管理員不受數據權限影響** * **因為我們的數據權限是在指定菜單后進行配置的,那也就是只有這條權限在配置的菜單下執行時才會生效,在其他菜單下執行則不會生效,如果在其他菜單下也需要執行配置的權限,則需要在該菜單下也配置一次這個權限**
                  <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>

                              哎呀哎呀视频在线观看