代码之家  ›  专栏  ›  技术社区  ›  Adam Sharp

有没有办法只为Aviarc数据集中的一个字段设置客户端权限?

  •  1
  • Adam Sharp  · 技术社区  · 12 年前

    我知道你可以为整个数据集设置客户端权限,如下所示:

    <dataset name="foo" databroker="bar" client-permissions="view"/>
    

    有没有办法只在一个字段上设置客户端权限(类似于可以为一个字段设置“有效”等其他元数据)?

    注意:这是Aviarc 3.5.0中的内容,因此数据绑定不可用。

    更新: 我脑海中的用例是一个搜索参数数据集。如果我从某个位置到达搜索屏幕,那么一个参数应该被锁定,因为搜索结果应该被该参数过滤。

    为一个相当于临时搜索参数数据集的数据创建一个新的数据代理,这样我就可以在一个字段上设置只读属性,这看起来真的太过分了。

    更新: 为了澄清,数据集目前没有任何数据代理绑定到它,它只是像哈希一样用于存储搜索参数。

    3 回复  |  直到 12 年前
        1
  •  4
  •   Tristan Wilkinson    12 年前

    目前没有办法对单个列/字段设置客户端权限。

    应该可以在列上设置数据规则,以防止除数据集刷新之外的任何操作都可写入该列。

    当我有单独的数据片段,这些数据片段应该是只读的,但包含在客户端可写的数据集中时,我会将这些数据的副本保存在非客户端可写数据集中,并在它们返回时覆盖客户端可写数据集。

        2
  •  1
  •   Lindsay Smith    12 年前

    如前所述,数据规则具有在单个字段上设置只读的功能。它们可以设置在所有行的给定字段上,也可以设置在单行的字段上。

    Adam已经提到,为这个案例创建一个单独的数据代理可能有些过头了,这是正确的。DataBinding层旨在为应用程序中的某些用例提供这种专门化。

    因此,您可以创建一个DataBinding,指向您的搜索DataBroker,将您需要的规则添加到现有操作或您定义的新操作中。然后,数据集被绑定到DataBinding而不是DataBroker,并从此以正常方式使用。

    其意图是,由DataBrokers绑定的规则适用于通过该代理提供的所有类型的数据,因此也将是关注数据完整性、格式等的规则。

    另一方面,DataBindings是应用程序中的一个层,允许您绑定与数据的用户交互相关的规则,如您的示例所示。预计给定的代理可能有多个数据绑定,每个数据绑定用于不同的应用程序路径或用户任务,以不同的方式与该数据交互。

        3
  •  0
  •   Adam Sharp    12 年前

    应该可以通过将我希望只读的参数隔离到其自己的数据集中,并仅针对该参数/数据集将客户端权限设置为“查看”来解决此问题。

    这确实增加了必须为该参数添加特殊情况的开销,但我不需要将其扩展到任何其他特殊情况。

    推荐文章