反饋已提交

網絡繁忙

權限細粒度控制

1. 概述

1.1 版本

報表伺服器版本
功能變動
11.0
-
11.0.31新增參數$fine_role_id,避免角色重新命名導致權限配置失效

1.2 功能簡介

權限細粒度控制是指標對範本內部的小處方面進行權限控制,比如說儲存格內容資料,元件、隱藏行列、工具欄,sheet,圖表等等。

不同的角色使用者登入系統,希望可操作的內容不一樣,比如說工具欄按鈕不一樣,範本預覽時,展示的儲存格不一樣,填報資料時,對某些元件擁有的編輯權限不一樣,查看資料時,看到的資料不一樣。

2. 權限細粒度

FineReport 對權限細粒度的控制提供了 2 種不同的控制方式,一個是完全視覺化的權限編輯,另外一個是根據 FineReport 提供的內建參數設定條件屬性來控制權限。

2.1 權限編輯

開啟設計器,開啟需要進行權限控制的範本,點選「範本>進入權限編輯」,進入權限編輯介面。如下圖所示:

開啟設計器,點選,即可在角色面板中選擇角色,對權限編輯面板中的儲存格、元件、工具欄、 sheet 等等內容在權限設定面板設定權限,如下圖所示:

注1:角色面板中的角色列表自動載入數據決策系統中的角色。如果修改了角色名,權限需要重新配置。

注2:FineReport 暫時只支援對範本工具欄、元件、儲存格、懸浮元素、行列和多 sheet 這幾個方面進行細粒度權限控制。

注3:視覺化權限編輯的詳細範例請參見:權限細粒度範本內容控制

2.2 參數權限控制

使用者認證後會將報表固定的預設參數$fine_username、$fine_role、$fine_role_id、$fine_position儲存在 Session 中。

同時提供兩個函式GETUSERDEPARTMENTS()GETUSERJOBTITLES()來分別獲取部門和職位。

同一報表環境下,範本中就可以直接以參數的形式獲取到對應的值,然後在範本裏面進行篩選判斷就可以顯示不同資料及樣式。

權限細粒度相關的參數和函式如下表所示:

參數
說明範例
$fine_username獲取登入系統的帳號

例如登入帳號為 Anna

$fine_username=Anna

$fine_role獲取登入系統的角色

1)若登入使用者為超級管理者

$fine_role=superusers

2)若登入使用者角色為自訂角色(例如:資料架構師)

$fine_role=資料架構師

3)若登入使用者無角色

該參數值為空

4)若登入使用者存在多個自訂角色

$fine_role_id=角色1,角色2

$fine_role_id獲取登入系統的角色ID

1)若登入使用者為超級管理者

$fine_role_id=super-user-custom-role

2)若登入使用者角色為自訂角色

(例如:資料架構師,id為7b37b885-190d-4db0-b3d3-bf2d15285447)

$fine_role_id=7b37b885-190d-4db0-b3d3-bf2d15285447

3)若登入使用者無角色

該參數值為空

4)若登入使用者存在多個自訂角色

$fine_role_id=角色1的id,角色2的id

$fine_position獲取部門職位,回傳值為一個由部門和職位組成的陣列

1)若登入使用者為「人力資源-部長」

$fine_position={"departments":"人力資源","jobTitle":"部長"}

2)若登入使用者為「人力資源-部長」兼「領導部-部長」

$fine_position={"departments":"人力資源","jobTitle":"部長"},{"departments":"領導部","jobTitle":"部長"}

3)若登入使用者無部門職位

該參數值為空

GETUSERDEPARTMENTS()

獲取部門職位裏面的部門

若部門存在多個層級,傳回全部層級

若存在多個部門,傳回全部部門

1)若登入使用者為「人力資源-部長」

GETUSERDEPARTMENTS()=人力資源

2)若登入使用者為「銷售部-華東銷售部-組長」

GETUSERDEPARTMENTS()=銷售部,華東銷售部

3)若登入使用者為「人力資源-部長」兼「領導部-部長」

GETUSERDEPARTMENTS()=人力資源,領導部

4)若登入使用者無部門

該參數值為空

GETUSERDEPARTMENTS(X)

獲取部門職位裏面的第X層部門

若不存在X層部門,則傳回空值

1)若登入使用者為「銷售部-華東銷售部-華東銷售1組-組長」

GETUSERDEPARTMENTS(3)=華東銷售1組

GETUSERDEPARTMENTS(3,2)=華東銷售1組,華東銷售部

2)若登入使用者為「銷售部-華東銷售部-組長」

GETUSERDEPARTMENTS(3)為空值

GETUSERDEPARTMENTS(3,2)=華東銷售部

GETUSERJOBTITLES()

獲取部門職位裏面的職位

若存在多個職位,傳回全部職位

1)若登入使用者為「人力資源-部長」

GETUSERJOBTITLES()=部長

2)若登入使用者為「人力資源-部長」兼「領導部-president」

GETUSERJOBTITLES()=部長,president

3)若登入使用者無職位

該參數值為空

注1:$fine_username、$fine_role、$fine_role_id、$fine_position 是 FineReport 預設參數,所以呼叫時大小寫必須保持一致。

注2:不支援模擬計算。

注3:參數權限控制的詳細範例請參見:權限細粒度參數控制

3. 注意事項

問題描述:權限細粒度控制時,開啟同步資料集的時候,在設計器裏進行權限編輯 時已配置角色中出現了內建資料集裏的部門「技術支援總調度」和「技術支援一線技術支援」,但同步資料集裏的部門中並沒有這兩個部門,而且有關「技術支援」的角色部門在決策系統的使用者頁面裏搜尋不到。

原因分析:產品內建 Demo 自帶的上報流程用到這兩個角色,因此在已配置角色裏預設顯示了這兩個角色,但不影響正常使用。

解決方案:在 FineReport 設計器中,點選「伺服器>伺服器配置」,分別在「分頁預覽設定」,「填報頁面設定」,「資料分析設定」介面去掉「使用工具欄」前的對勾。

具體情況如下所示:

上述步驟把伺服器預設範本工具欄清空,若想實現單個範本的權限細粒度的工具欄控制。

使用者可開啟單個範本,點選菜單欄的「範本>範本Web屬性」,設定「為該範本單獨設定」,新增範本所需要的工具。具體情況如下所示:


附件列表


主題: 數據決策系統
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙