若依數(shù)據(jù)權(quán)限圖文詳細(xì)理解及改造-創(chuàng)新互聯(lián)

數(shù)據(jù)權(quán)限

所謂數(shù)據(jù)權(quán)限,就是根據(jù)不同角色的登錄用戶,查看不同的列表數(shù)據(jù)

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站十余年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站建設(shè)、網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文發(fā)布平臺廣告投放等。十余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來電!若依數(shù)據(jù)權(quán)限

若依的數(shù)據(jù)權(quán)限也是基于角色實(shí)現(xiàn)的,支持五種權(quán)限模式,按權(quán)限大小一次排列:

  • 全部數(shù)據(jù)權(quán)限,表示擁有所有部門的數(shù)據(jù)權(quán)限 ·
  • 自定數(shù)據(jù)權(quán)限,表示擁有指定的若干部門的數(shù)據(jù)權(quán)限
  • 本部門數(shù)據(jù)權(quán)限,表示僅擁有用戶所屬部門(不包括子部門)的數(shù)據(jù)權(quán)限
  • 本部門及以下數(shù)據(jù)權(quán)限,表示僅擁有用戶所屬部門和所有子部門的數(shù)據(jù)權(quán)限
  • 僅本人數(shù)據(jù)權(quán)限,表示僅擁有用戶本人的數(shù)據(jù)權(quán)限
頁面設(shè)置數(shù)據(jù)權(quán)限

若依頁面數(shù)據(jù)權(quán)限
若依設(shè)置數(shù)據(jù)權(quán)限不止頁面需要設(shè)置,后端也要設(shè)置,只設(shè)置頁面不設(shè)置后端就沒用??!,對于這個,后面會有詳細(xì)解釋

后端設(shè)置數(shù)據(jù)權(quán)限

若依后端設(shè)置數(shù)據(jù)權(quán)限非常簡單,使用 @DataScope 注解即可實(shí)現(xiàn)數(shù)據(jù)權(quán)限
@DataScope 注解下有三種屬性:deptAlias ,userAlias,permission
@DataScope注解

注意:

使用此注解的deptAlias 和 userAlias 屬性 需數(shù)據(jù)庫有dept_id或者user_id 并且在SQL后面拼接 ${params.dataScope} 而且是實(shí)體類需繼承BaseEntity 類 ,所以無法支持mybatis-Plus
SQL
因?yàn)閿?shù)據(jù)權(quán)限的實(shí)質(zhì)還是拼接SQL,而params.dataScope就是框架預(yù)留的拼接。而 params就在BaseEntity 中
BaseEntity 類

deptAlias

根據(jù)部門設(shè)置數(shù)據(jù)權(quán)限

  1. 首先在角色管理中設(shè)置本部門數(shù)據(jù)權(quán)限或者本部門及以下數(shù)據(jù)權(quán)限
    在這里插入圖片描述
  2. 然后在后端接口實(shí)現(xiàn)類上添加 @DataScope(deptAlias = “t1”) ,此t1是你要查詢的數(shù)據(jù)表的別名,如果是單表查詢的話即可不設(shè)置值,直接 @DataScope(deptAlias) 即可。
    在這里插入圖片描述
    3.在頁面上查看數(shù)據(jù)
admin查看(admin能查看所有數(shù)據(jù)):

在這里插入圖片描述

切換供應(yīng)商賬號(供應(yīng)商設(shè)置的自定義數(shù)據(jù)權(quán)限,能看到供應(yīng)商和施工方數(shù)據(jù)):

在這里插入圖片描述
在這里插入圖片描述

切換服務(wù)商賬號(服務(wù)商只能看到服務(wù)商數(shù)據(jù)):

在這里插入圖片描述
在這里插入圖片描述

userAlias

userAlias 同deptAlias 這里就不多啰嗦了

* permission

著重講一下permission,permission的定義是 權(quán)限字符(用于多個角色匹配符合要求的權(quán)限)默認(rèn)根據(jù)權(quán)限注解@ss獲取,多個權(quán)限用逗號分隔開來,如果注解沒有寫的話,就默認(rèn)是你角色的權(quán)限
在這里插入圖片描述
這里我改造了一下,因?yàn)槲覀儤I(yè)務(wù)需要,比如一個項目是a部門創(chuàng)建的,這個項目理應(yīng)只有a部門才能看到,項目需要一個審批人,而這個審批人是b部門下的或者其他人,所以登錄人如果是審批人也應(yīng)該看到,我們審批人字段為approval_id,可能還會有經(jīng)辦人或者什么什么各種人,所以改造了一下permission屬性,使得也能夠自動拼接在系統(tǒng)數(shù)據(jù)權(quán)限的后面
在這里插入圖片描述
實(shí)現(xiàn)類:
在這里插入圖片描述
自動拼接:
在這里插入圖片描述
既拼接了部門權(quán)限,又拼接了我們自定義字段的權(quán)限,而且是or 只要滿足一個即可查詢出數(shù)據(jù)
在這里插入圖片描述
使得供應(yīng)商創(chuàng)建的原本供應(yīng)商才能看到的數(shù)據(jù),因?yàn)榈卿浫耸谴隧椖康膶徟耍材芸吹綌?shù)據(jù)

DataScopeAspect

DataScopeAspect是@DataScope的切面類,也是若依框架實(shí)現(xiàn)拼接權(quán)限SQL的核心
dataScopeFilter 方法,是主要方法
在這里插入圖片描述
里面的常量即為我們在頁面上設(shè)置的不同數(shù)據(jù)權(quán)限
在這里插入圖片描述
如果表里面沒有dept_id或者user_id的話,比如只有createdBy 創(chuàng)建人id,實(shí)在需要改造的話,也可以把這里SQL里面的user_id改成你想要的createdBy 字段

注:以上所有數(shù)據(jù)及名稱都經(jīng)過處理,均不涉及公司機(jī)密

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前標(biāo)題:若依數(shù)據(jù)權(quán)限圖文詳細(xì)理解及改造-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://muchs.cn/article36/idisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、營銷型網(wǎng)站建設(shè)搜索引擎優(yōu)化、網(wǎng)站建設(shè)網(wǎng)站設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)