在业务系统中,经常需要通过用户的所属机构控制用户所能查看到的数据。
下面我们演示如何实现数据权限,控制不同机构用户只能查看所属机构及其所有子机构的数据。
机构架构如下:
数据库中存在机构表,包含机构编号字段、机构名称字段和上级机构编号字段。如org表;其中c_id为机构编号,c_name为机构名称,c_parentid字段为上级机构编号。
使用下拉树参数和用户所属默认组名称相结合,控制用户登录之后,下拉树参数的根节点的值为用户所属机构的编号,则用户进行参数切换,只能够选择其所属机构或者下级机构,不能够选择上级机构或者其他机构。通过参数过滤数据实现用户只能查看其所属机构及下级机构的数据。
备选值、默认值和根节点设置如下。备选值、根节点和默认值中,使用系统函数CurrentUserDefaultDepartmentName与c_name字段进行过滤,则当用户选择参数时根节点为对应的机构编号。