组织中的可见性
可见性是访问控制的一种形式。如果实体对组织单位成员可见,则这些成员具有该实体的读取权限。底层的细化安全模式可以确定身为组织单位成员的任何用户可能与特定资产之间进行的特定交互。如果系统中的用户未被授予可见性,则该资产不会存在于该用户的域内。该用户看不到资产,无法列出资产或了解该资产的名称空间。
ThingWorx 中,可以定义可见性规则,使特定的事物只对单个组织可见,或允许多个组织对同一资产可见。一个组织由组织单位组成。
默认可见性
默认情况下,非管理用户仅被授予对其创建的实体的可见性。
授予可见性
要为非管理用户授予对实体的可见性权限,请创建包含一个或多个用户的组织或组织单位。组织创建完成后,您需要为组织或组织单位授予可见性权限。
该操作可以在以下级别完成:
集合级别,在该级别可将可见性设置应用于集合的所有成员。
单个实体级别 (即 VM101 自动售货机)。
实例级别 (仅适用于事物模板)。实例可见性设置对于衍生自该事物模板的任何事物保持不变。
可以通过用户界面或使用 REST API 服务 (但 ThingPackages 集合除外,如下一部分所述) 添加可见性。
当在组织层次结构中的较低级别授予资产的可见性时,会自动为它们授予较高级别。例如,如果授予行操作员对行的可见性,则会自动授予组织结构中所有行的主管对下属操作员被授予可见性的资产的可见性。
卷起模型有一个例外:授予整个组织对资产的可见性。当添加整个组织时,会向该组织及其所有子单位分配对该实体的可见性。
为组织单位授予可见性
在下面的示例中,创建了一个包含关联的组织单位和用户的新组织。已对该组织单位应用了可见性。
1. 创建新组织。在本示例中,将其命名为 Example Org。单击“保存”
2. 单击“组织”视图。默认根级别名称为 Unit 1。将用户添加到此单位中,原因在于您无法将其添加到组织单位以外。
3. 重命名 Unit 1。在本示例中,将其命名为 RootLevelDefault
4. 通过单击加号图标创建 RootLevelDefault 的子组织单位。在本示例中,将其命名为 SubLevel。单击“保存”
5. 单击“权限”,然后通过选择 RootLevelDefault 来分配可见性。
* 
如果您将可见性分配给组织名称,在本示例中指的是 Example Org,则整个组织均可获得可见性权限 (与集合级别权限类似)。下图同时显示了这两个选项。第一行显示整个组织均具有可见性权限。第二行显示组织单位具有可见性权限。
授予 ThingPackages 集合的可见性
只能通过 REST API 授予 ThingPackages 集合的可见性。没有任何用户界面选项。
使用 CollectionFunctions 资源中的 AddCollectionVisibilityPermissions 服务。输入参数可标识要授予可见性的主体。
例如,要授予 Everyone 组织的可见性,可以使用以下输入参数:principal = EveryoneprincipalType = OrganizationcollectionName = ThingPackages
默认情况下,只有管理员用户才能为实施数据库事物模板的事物创建 SQL 查询和 SQL 命令服务。为允许非管理员用户执行此功能,必须授予 ThingPackages 集合附加权限。请按照以下步骤授予这些权限:
1. 在 Composer 中,导航到“系统”>“资源”
2. 选择 CollectionFunctions 资源。
3. 选择“服务”
4. 选择 AddCollectionRunTimePermission 服务。
5. 使用以下参数执行服务:
collectionName - ThingPackages
type - ServiceInvoke
resource - * or something specific
principal - Name of User or Group
principalType - User or Group
Allow - True
配置资产可见性
在配置组织之前,必须定义用户和组。
1. 在资源管理器中,打开事物或实体。
2. 单击“权限”
3. “可见性”下,选择适当的组织。
4. 单击“保存”
* 
要从组织中删除组织单位,请单击该单位旁的删除图标
要删除可见性,请选择组织,单击复选框,然后单击“移除”
运行时和设计时权限设置也可以在进行可见性权限控制的页面顶部进行访问。
配置实例可见性
实例可见性仅适用于事物模板,在此级别设置的可见性由使用该事物模板的任何实体继承。
1. 在资源管理器中,打开“事物模板”部分。
2. 定位并选择感兴趣的模板。
3. 单击菜单栏中的“权限”
4. “可见性”下方,单击“在组织中添加”列表框。
5. 单击魔术拾取器,然后选择相应的组织。
6. 单击“保存”