反饋已提交

網絡繁忙

權限細粒度參數控制

1. 概述

功能簡介:使用者身分驗證 後會將報表三個固定的預設參數【$fine_username】、【$fine_role】、【$fine_position】儲存在 Session 中。

同時提供兩個函式【GETUSERDEPARTMENTS()】、【GETUSERJOBTITLES()】來分別獲取部門角色的部門和職位。

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

二、參數介紹

本文要介紹的內容如下表所示。

注1:【$fine_username】、【$fine_role】、【$fine_position】  為報表預設參數,呼叫時大小寫必須保持一致。

注2:【$fine_username】、【$fine_role】、【$fine_position】 參數在 設計器9.0 裏分別對應【$fr_username】、【$fr_authority】、【$fr_userposition】。

注3:不支援模擬計算。

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

例如登入帳號為 Anna

$fine_username=Anna

$fine_display_name獲取登入系統的姓名(帳號)

例如登入帳號為 安娜(Anna)

$fine_display_name=安娜(Anna)

$fine_role獲取登入系統的角色

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

$fine_role=superusers

2)若登入使用者角色為角色資料架構師

$fine_role=資料架構師

3)若登入使用者無角色

該參數值為空

4)若登入使用者存在多個角色「角色1」「角色2」

$fine_role=角色1,角色2

$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)若登入使用者無職位

該參數值為空

2. 範例一:根據登入名限制資料內容

本文範例:

數據決策系統中存在使用者sunlin和hanwen。

資料庫「銷量」表中,存在資料列「英文簡稱」,該列資料和數據決策系統中的帳號對應。

根據「銷量」表建立了範本「根據登入名限制資料內容」並掛載到數據決策系統目錄中。

sunlin和hanwen登入系統,查看該範本,只能看到自己的銷售資料,看不到其他內容。

注:本章使用的是資料集參數作為範例,使用者也可使用範本資料集。

2.1 建立範本

開啟設計器,建立一張普通報表。

建立資料庫查詢ds1:SELECT * FROM 銷量 where 英文簡稱='${fine_username}'

獲取登入系統的帳號,例如登入帳號為sunlin,那麼$fine_username=sunlin。

如下圖所示:

2.2 設計範本

範本樣式設計如下圖所示:

2.3 平台掛載範本

管理者登入數據決策系統,點選「管理系統>目錄管理」,選擇「管理目錄」,點選「新增範本」。

選擇上一節製作的範本「根據登入名限制資料內容」,點選「下一步」。掛載型別選擇「預覽」,展示終端勾選「PC」,點選「確定」。如下圖所示:

2.4 配置範本查看權限

管理者登入數據決策系統,點選「管理系統>權限管理>普通權限配置」。

選擇權限載體為「所有部門」,為其分配目錄「根據登入名限制資料內容」的「查看」權限,如下圖所示:

2.5 效果預覽

使用者sunlin(sunlin,123456)登入數據決策系統,查看該範本,只能看到自己的銷售內容。如下圖所示:

使用者hanwen(hanwen,123456)登入數據決策系統,查看該範本,只能看到自己的銷售內容。如下圖所示:

2.6 已完成範本

已完成範本請參見:根據登錄帳號限制顯示列欄.cpt

注:請確定平台存在範本中對應的使用者sunlin和hanwen,否則無法正確展示最終效果。

3. 範例二:根據登入角色限制顯示行列

希望不同角色存取範本時,查看到的範本列數不同、行列顔色不同。可以給行列新增條件屬性設定行高、列寬、背景等

本章範例:

數據決策系統中有角色「編外人員」,使用者Anna屬於該角色,使用者Alice不屬於該角色。

目錄中掛載了一張範本,範本中存在列「銷量」。

不屬於角色「編外人員」的使用者Alice登入數據決策系統查看該範本時,可以看到列「銷量」。

屬於角色「編外人員」的使用者Anna登入數據決策系統查看該範本時,看不到列「銷量」。

3.1 建立範本

開啟設計器,建立一張普通報表。

建立資料庫查詢ds1:SELECT * FROM 銷量

如下圖所示:

3.2 設計範本

範本樣式設計如下圖所示:

3.3 設定條件屬性

選中E2儲存格,點選右側配置欄「條件屬性」,新增一個條件屬性。

設定屬性為列寬=0公釐。設定條件型別為公式,公式內容為$fine_role='編外人員',點選「增加」,如下圖所示:

注:若一個使用者有多個角色,公式為find('編外人員',$fine_role)>0

3.4 平台掛載範本

管理者登入數據決策系統,點選「管理系統>目錄管理」,選擇「管理目錄」,點選「新增範本」。

選擇上一節製作的範本「根據登入角色限制顯示行列」,點選「下一步」。掛載型別選擇「預覽」,展示終端勾選「PC」,點選「確定」。如下圖所示:

3.5 配置範本查看權限

管理者登入數據決策系統,點選「管理系統>權限管理>普通權限配置」。

選擇權限載體為「所有部門」,為其分配目錄「根據登入角色限制顯示行列」的「查看」權限,如下圖所示:

3.6 效果預覽

不屬於角色「編外人員」的使用者Alice(Alice,123456)登入數據決策系統查看該範本時,可以看到列「銷量」。如下圖所示:

屬於角色「編外人員」的使用者Anna(Anna,123456)登入數據決策系統查看該範本時,看不到列「銷量」。如下圖所示:

3.7 已完成範本

已完成範本請參見:根據登錄角色限制顯示列欄.cpt


附件列表


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

文 檔回 饋

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

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

不再提示

10s後關閉