注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

应用操作时的权限检查

应用操作时的权限检查取决于您是编辑单数据源Object还是多数据源Object

单数据源Object的编辑

如果Object类型由单个数据源支持,只要满足以下条件,操作允许用户编辑Object:

  • 用户可以查看/加载该Object(详情请参见Object权限部分),并且
  • 用户通过操作中定义的提交标准

创建新的Object时,用户必须能够查看Object类型的输入数据源;如果用户无权访问输入数据源,操作运行将失败。

多数据源Object的编辑

Object类型可以具有来自多个数据源的属性。在这些情况下,用户在给定Object实例上的访问级别可能会有所不同,如下所示:

  • 用户可以查看整个Object;例如,用户可能有权访问所有数据源以及这些数据源中的所有行。
  • 用户可以查看部分数据源;例如,用户可能有权访问某些数据源中的所有行,而没有权访问其他数据源中的行。
  • 用户可以查看部分数据源中的部分行;例如,用户可能对某些行的完整Object有访问权限,对某些行的Object有部分访问权限,而对剩余行的Object没有访问权限。

如果Object类型具有多个数据源,则应用操作时的权限检查会更复杂,因为要确保用户能够查看整个Object才能编辑它(如同单数据源Object)可能会非常严格。

以下权限规则针对可以应用于Object的不同种类的操作进行了实施。

创建Object

场景:给定的Object实例存在于数据源D[i..k, m..n]中。用户通过仅在D[i..k]中设置属性值来创建该Object。

除非用户可以查看D[i..k]的支持数据源,否则不允许用户创建该Object。不会对D[m..n]进行权限检查。D[m..n]的值默认为null

如果D[i..k]中的任何一个数据源过去包含该Object(但现在标记为已删除),用户必须具有查看D[i..k]中所有行/Object实例的权限才能重新创建该Object。

编辑或修改Object

场景:该Object存在于数据源D[i..k, m..n]中。用户正在编辑映射到D[i..k]的属性。

只要用户可以查看D[i..k]中属性的现有值,就允许用户编辑这些属性。不会对映射到D[m..n]的属性进行权限检查。

D[m..n]将在验证期间显示为null。如果验证通过带有null值,用户可以应用操作。

删除Object

场景:该Object存在于数据源D[i..k, m..n]中。

如果用户无法查看整个Object(换句话说,来自D[i..k, m..n]的所有属性),则不允许用户删除该Object实例。

创建链接

场景:Object1存在于数据源D1[i..k]中,Object2存在于数据源D2[m..n]中。

只要用户能够在数据源D1[i..k]D2[m..n]中的任何一个加载Object1和Object2,就允许用户创建链接。不会对单个属性或数据源进行权限检查。

删除链接

场景:Object1存在于数据源D1[i..k]中,Object2存在于数据源D2[m..n]中。

只要用户能够在数据源D1[i..k]D2[m..n]中的任何一个加载Object1和Object2,就允许用户删除链接。不会对单个属性或数据源进行权限检查。