壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 342|回复: 0

基于角色的安全性动态报告的样例案例2

[复制链接]
发表于 2012/3/9 13:58:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在 Framework Manager 中创建 Parameter Maps
Parameter Map 是一个 “键-值” 对集合,显示为一个两列表,看起来像一个查询表。要正常工作,Parameter Map 中的每个 “键-值” 对都应该有一个惟一键。Parameter Map 接受的数据中不能包含引号。
右键单击 “Project Viewer” 窗格中的 “Parameter Maps” 条目,通过上下文菜单创建 Parameter Map(见图 8)。

图 8. Framework Manager:在 Framework Manager 中创建 Parameter Map



在 Parameter Map definition 窗口中(见图 9),可以通过单击 “New Key” 添加新键和键值。可以使用 “Edit” 和 “Delete” 按钮删除它。“Clear Map” 用于删除 Parameter Map 上的所有键和值。
可以通过 “Export File” 按钮将 “键-值” 对导出为 CSV 文件,文件编辑后,可以通过 “Import File” 按钮再次导入。
在本例中,我们创建了一个名为 “All_EmpKey” 的 Parameter Map。这些键(OpenLDAP 用户帐户)被映射到对应的 “Employee Key” 值(图 9)。

图 9. Framework Manager:将 OpenLDAP 用户帐户映射到 “Employee Key” 的 Parameter Map Definition

在 Framework Manager 中定义条件查询过滤器
可以使用 Query Subject 过滤器限制对数据源的用户访问。要基于用户登录信息限制用户只能检索特定数据,可以在 Query Subject 过滤器中使用以下表达式。
[Business view].[Query Item]=#sq($ALL_EmpKey{$account.personalInfo.userName})#
例如,图 10 显示没有对这个 Query Subject 设置过滤器时,使用 “Test Sample” 按钮进行的 “Employee by position-department” 查询的结果。

图 10. Framework Manager:“Employee by position-department” Query Subject


为限制用户只能查询与他们的登录帐户相关的信息,我们定义了以下 Query Filter(图 11):
[Business view].[Employee by region].[Employee key]=#sq($ALL_EmpKey{$account.personalInfo.userName})#

图 11. Framework Manager:限制用户只能查询与他们的登录帐户相关的信息的过滤器定义


使用这个 Query Filter,这个宏将匹配用户登录信息(用作 “ALL_EmpKey” Parameter Map 中的键)并将其替换为它的值。这导致传递到查询定义的关联 Employee Key 值。如图 12 所示,Test 选项卡只显示当前登录用户 “ayamada” 的相关信息。这意味着 Query Filter 的结果是 [Employee key] =4032。

图 12. Framework Manager:帐户 ayamada 的查询结果


可以使用布尔表达式在单个 Query Filter 定义中定义多个条件。使用多个数据项定义一个过滤条件时,需要将 “if..then..else” 和 “case..” 表达式转换为 “and..or” 表达式,这是因为它们不能返回布尔结果。
在本例中,我们允许人力资源部员工检索他们所在国家的所有 HR 数据。其他部门的员工只能检索他们的个人 HR 数据。换句话说,我们设置了以下过滤器。
使用 Country_Code for HR 组
使用 EmpKey for NonHR 组
要实现这个场景,可以使用以下条件 Query Filter。
If (logon user’s group = nonHR then [employee key] = EmpKey
Else [Country Code] = Country_Code

图 13. Framework Manager:“HR_Country” 的 Parameter Map


Parameter Map “HR_Country” 提供一个 HR 员工列表。登录帐户用作键,Country Code 用作对应的值(图 13、14)。这个 Parameter Map 中没有列示的登录帐户将被分配一个默认值 “non-HR”。使用这个 Parameter Map,可以使用以下 “and..or” 表达式作为 Filter Definition。
(#sq($HR_Country{$account.personalInfo.userName})#='nonHR' and [Business view].
[Employee by region].[Employee key]=#sq($ALL_EmpKey{$account.personalInfo.userName})#) or
(#sq($HR_Country{$account.personalInfo.userName})# <>nonHR' and [Business view].
[Employee by region].[Country code] = #sq($HR_Country{$account.personalInfo.userName})#)

图 14. Framework Manager:多个条件的 Filter Definition

登录的用户帐户不同,这个 Query Subject 的结果也不同,如图 15图 16 所示。当我们作为普通员工 “ayamada” 登录时,Query Subject 被 Yamada Akemi 的 EmpKey 过滤,只返回一条记录。但是,如果我们作为 HR 员工 “dtanaka” 登录,Query Subject 将被 Tanaka Daichi 的国家代码过滤,返回所有针对日本的记录。






该贴已经同步到 xiaoerp的微博
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 19:20 , Processed in 0.011824 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表