注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
应用操作时的权限检查取决于您是编辑单数据源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存在于数据源
D[i..k, m..n]
中。用户正在编辑映射到D[i..k]
的属性。
只要用户可以查看D[i..k]
中属性的现有值,就允许用户编辑这些属性。不会对映射到D[m..n]
的属性进行权限检查。
D[m..n]
将在验证期间显示为null
。如果验证通过带有null
值,用户可以应用操作。
场景:该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,就允许用户删除链接。不会对单个属性或数据源进行权限检查。