反饋已提交

網絡繁忙

當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

B14-01 權限細粒度控制

一、概述

  1. 細粒度的權限控制指對應範本中的可見內容進行控制,可控制的內容包括儲存格內容,元件、列欄、工具欄,sheet,圖表等。

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

 

二、視覺化權限編輯面板

  1. 開啟設計器,點選 【範本】→【權限編輯】,會進入權限編輯介面。可在左下角的角色面板中選擇角色,對權限編輯面板中的儲存格、元件、工具欄、 sheet 等等內容在權限設定面板設定權限,如下圖所示。

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

可视化权限编辑面板.png

三、透過參數控制權限

  1. 使用者透過決策平台登入後,3個預設參數($fine_username、$fine_role、$fine_position)的值會被系統臨時儲存,使用者登出後,這些參數的值才會被銷燬(這些值是透過Session進行記錄的)。

  2. 同時,系統提供2個內建函式GETUSERDEPARTMENTS() 和 GETUSERJOBTITLES() ,分別用於獲取部門角色的部門和職位。

  3. 範本可以直接使用這3個預設參數和2個內建函式。在範本裡面透過參數和函式進行篩選,就可以讓不同的使用者看到不同的報表內容。

型別

呼叫時的形式

備註

參數

$fine_username

用來匹配使用者的帳號。

例如,透過$fine_username="Anna"  這一判斷條件,可以控制使用者Anna的權限。

$fine_role

用來匹配使用者的角色。

若想控制管理员的權限,则使用判断条件:$fine_role="superusers"

若想控制某一角色的權限,例如角色為[Data architect]的使用者,則使用判斷條件:$fine_role="Data architect"。

 

若一個使用者有多個角色,比如Anna同時具備角色A和B,對角色A的權限進行限制後,Anna仍然可以讀取角色A不可見的內容,因為Anna也屬於角色B。

$fine_position

用來匹配使用者的部門和職位。

傳回值由部門和職位組成,為 JSON 格式。

例如,要控制人力資源部門部長的許可權,則使用判斷條件:$fine_position={"departments":"Human Resource","jobTitle":"Manager"}。

函式

GETUSERDEPARTMENTS()

傳回使用者所屬的部門。

例如人力資源部門部長登入系統,則GETUSERDEPARTMENTS()的傳回值是"Human Resource"。

 

若一個使用者所在的部門具有層次,則這個函式可以傳回指定層的部門名稱。假設共有3層,則GETUSERDEPARTMENTS(3,2) ) 傳回使用者所在的部門層級中第3和第2層的部門名稱,傳回值型別為陣列。若最多隻有2層,則只傳回第2層的部門名稱。

GETUSERJOBTITLES()

傳回使用者擔任的職位。

例如人力資源部門部長登入系統,則GETUSERJOBTITLES()的傳回值是"Manager"。

四、透過資料集參數直接控制權限

1
準備範本。
  1. 新建資料庫查詢 ds1。

  2. SELECT T1.地區,T1.銷售員,T1. 產品型別,T1.產品,T1.銷量

    FROM 銷量 T1 LEFT JOIN userinfo T2 

    ON T1.銷售員 = T2.fullname 

    WHERE T2.username='${fine_username}'

  3. 範本設計如下圖所示。

2
平台掛載範本。
  1. 管理員將設計好的範本挂载到決策平台中。

3
分配範本檢視權限。
  1. 管理員將該範本的檢視權限分配給使用者 韓文。

4
效果檢視。
  1. 韓文 登入決策平台訪問範本時,範本自動篩選 韓文 的資訊。如下圖所示。

直接控制.png

五、透過條件屬性控制權限

1
準備範本。
  1. 新建資料庫查詢 ds1。

  2. SELECT T1.地區,T1.銷售員,T1. 產品型別,T1.產品,T1.銷量

    FROM 銷量 T1 LEFT JOIN userinfo T2 

    ON T1.銷售員 = T2.fullname 

    WHERE T2.username='${fine_username}'

  3. 範本設計如下圖所示。

报表设计1.png

2
新增條件屬性。
  1. 若 韓文 角色是 資料分析師,希望 韓文 登入平台訪問範本時,不能檢視【銷量】列。則選中單元格E2,新增條件屬性,屬性選擇【欄宽】,新增公式條件為$fine_role='資料分析師',如下圖所示。

  2. 若一個使用者有多個角色,建議將公式條件修改為 find('資料分析師',$fine_role)>0。

添加条件属性.png

3

平台掛載範本。

  1. 管理員將設計好的範本挂载到決策平台中。

4

分配範本檢視權限。

  1. 管理員將該範本的檢視權限分配給使用者 韓文。

5

效果檢視。

  1. 韓文 登入決策平台訪問範本時,效果如下圖所示,銷售資料不顯示。

条件属性-效果查看.png

6
修改公式條件。
  1. 若 韓文 所在的部門是銷售部,職位是 Sales,若想透過部門和職位去控制權限,則可將條件屬性中的公式修改為GETUSERDEPARTMENTS()='Sales department' 和 GETUSERJOBTITLES()='Sales',如下圖所示。

修改公式条件.png



附件列表


主題: 決策平台
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤

文 檔回 饋

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

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

不再提示

10s後關閉