报表中如何控制附件的上传和下载权限
目前,多用戶的軟件平臺已經是再常見不過的了,有成千上萬個用戶賬號的平臺也很正常。為了保證每個用戶準確訪問各自的信息,免不了要做這樣或那樣的權限控制,而且這種權限控制往往是需要基于數據層面進行管理的。
對于報表平臺的數據權限管理,我們可以直觀地理解為:不同的機構、角色甚至具體到人,在訪問同一張報表時所看到的數據都有可能不同的。最常見的例子比如工資條(也可以看做是一張簡單的報表),因為絕大多數公司薪資都是保密的,所以很顯然,系統內不同人看到的結果肯定是不相同的。 再比如,區域銷售情況統計對于不同區域的銷售經理來說,也應該只能看到其所負責區域的數據。
今天我們將討論這些傳統權限管理中,一個特殊的需求:如何在報表中控制一個文件的上傳和下載權限。比如:公司內部管理系統中,對于合同模板,法務部人員允許上傳和下載,而銷售人員則只能下載不允許上傳。再比如,學校的教務系統中,關于學生的成績單,教務處既可以上傳也可以下載,而學生則只能瀏覽。
通常情況下,這種針對報表中某個編輯框進行權限控制的需求,我們會通過”是否可編輯表達式”來實現。例如:
以報表工具自帶的實例 2.1.sht 為例,根據不同的用戶名控制部門字段的可寫性操作。
這里設定只允許 lis 可以編輯修改部門信息,其他人均不可以。
具體的操作如下:
選中部門列所在單元格 B3 然后在右邊屬性欄中設置 【是否可編輯表達式】為 user==’lis’或者 user==‘lis’?true:false(注意:此表達式嚴格按照 js 的規則書寫,不能使用報表中定義的 if() 函數 ),并且在報表中增加對應的參數 user 用于接收用戶名。
效果:
這個小例子顯示了如何針對編輯框做權限控制,不過,如果我們照葫蘆畫瓢對”上下載文件”進行權限管理設置,當發布到頁面上后就會發現,不僅剛剛設置的權限管理沒生效,而且還會導致對其他單元格設置的“不可寫”也同時失效了!估計一開始遇到這個問題,大家都會忍不住地以為自己寫錯了,經過再三檢查也沒發現問題,最終才能確定:目前不支持通過【是否編輯表達式】對”上下載文件”做權限控制。
那么,到底應該怎么實現”上下載文件”的權限控制呢?別著急,往下看……
以報表工具自帶的實例 4.3.sht 為例,對雇員照片所在的 E3 單元格做上傳下載的權限控制。
報表設計界面如下:
其中,F1 單元格輸出 userId 是為了輔助后面做權限控制。
在報表展現界面中,增加 js 方法實現上傳下載的權限控制:
其中,
ss變量,指定要對那個單元格做權限控制;
qx變量,是報表工具內置變量名,其變量值0** 代表可以上載下載、1 代表 僅上載
2** 代表 僅下載、3 代表 不能上下載。
用戶名 userID,,可以根據需要從后臺傳入,演示中采用參數模板傳值。
效果:
用戶 zhangsan 只允許查看不允許做任何操作,其他用戶可以上下載文件。
這樣,通過內置的參數 qx 結合 js 訪問,我們就可以輕松實現這個需求,大家可以參考本文根據自己的實際情況做相應的調整。如果還想了解更多內容,那就關注我吧。
總結
以上是生活随笔為你收集整理的报表中如何控制附件的上传和下载权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java LinkedList指南
- 下一篇: 体验Hadoop3.0生态圈-CDH6.