共享规则
通过共享规则,您可以为用户进行对象权限外的共享设置。使用共享规则,使这些用户可以访问他们不拥有或通常无法查看的记录。
要配置共享规则,请在”设置“应用中进入”对象设置→对象“界面,点击要设置相关规则的对象名称进入对象设置界面,然后在底部可以看到”共享规则“子表,在这里新建相关规则即可:
- API名称 唯一标识名称,需要符合API命名规范。
- 启用 勾选表示立刻启用规则。
- 指定条目条件 用于配置该规则生效的条件,需输入类似
{{$user.profile !='user'}}
这种公式表达式,当条件成立时该规则才生效。 - 记录过滤器 输入要共享或限制查看的数据的过滤条件,这里也支持“指定条目条件”中一样的公式表达式语法。
指定条目条件
给共享规则设置的”指定条目条件“是一个公式表达式,Steedos权限引擎会执行该表达式并根据执行结果来判断是否要把规则中配置的”记录过滤器“时配置的过滤条件叠加到最终查询结果中。
公式格式
{{ javascript语法的表达式 }}
必须以 ‘{{
‘ 开头,以 ’}}
’ 结尾,其包裹的是一个标准的javascript
表达式。
支持变量
公式表达式中支持以下变量,可以直接在表达式中引用它们:
- $user :
Dictionary<any>
userSession,当前登录用户信息,详细请参考后续附录。 - global:
Dictionary<any>
全局变量,目前只支持now变 量。公式表达式global.now
会输出当前时间值。
请注意该表达式是在服务端运行的,所以无法在表达式中引用前端浏览器中的全局变量或函数。
记录过滤器
给共享规则设置的”记录过滤器“是要共享或限制查看的数据的过滤条件,其语法规则请参考该文档底部 查询过滤条件详解 小节。
这里输入的内容也是支持公式表达式语法的,其表达式语法与上面提到的“指定条目条件”是一样的。
只要在Steedos中查询数据,Steedos权限引擎就会把满足”指定条目条件“的共享/限制规则中的”记录过滤器“里配置的过滤条件叠加到最终查询条件中,整个查询计算过程请参考该文档顶部提到的 权限计算 - 查询 示意图。
- 共享规则:如果配置的是共享规则,过滤条件会以
OR
的方式叠加到最终的查询过滤条件中。 - 限制规则:如果配置的是限制规则,过滤条件会以
AND
的方式叠加到最终的查询过滤条件中。
示例1
假设在某个魔方项目中有三个分部,分别表示上海总公司、南京分公司和杭州分公司,在该项目中需要通过权限配置来实现公司内部的业务管理人员可以查看本公司所有外部客户创建的合同数据。