历史版本3 :外部权限表实现数据权限过滤 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 应用场景
同一张报表,不同的用户登录,看到的数据不同。
例如:北京分公司的人只能看到北京的数据,上海分公司的人只能看到上海的数据。
1.2 实现思路
引入外部权限表,直接在数据库查询语句中实现数据权限的过滤。
2. 示例编辑
2.1 了解$fine_username
$fine_username:该参数用于获取决策系统的登录名。详细内容参见:权限细粒度之参数控制。
2.2 创建外部权限表
在数据库中创建一张外部权限表。表中的 user_code 对应的就是决策系统的用户名,比如:zhangsan 就是用户名。
注:如果之前已经有用户和城市的对应表,就不需要创建这张对应表了。
2.3 在设计器中引用外部权限表
在 FineReport 设计器中引用2.2中创建的外部权限表,把过滤条件写在数据源代码里。数据过滤分以下两种情况:
1)如果所有用户都要过滤权限,就比较简单,可以直接写在条件里。
2)如果有的用户不需要过滤权限,有的用户需要过滤权限,就需要判断一下。
3)报表完成后,部署到决策平台,用 zhangsan 这个账号登录,就只能看到北京市的数据。用 lisi 登录,就只能看到上海市的数据。
3. 注意事项编辑
文档中使用的是 MySQL 数据库,不同的数据库会有一定的差异,请根据实际情况进行调整。