以下部分提供了要求使用虚拟数据视图的使用实例,并且需要结合使用转换模型和操作,来实现这些使用实例。
使用以下转换规则可以从条目的现有属性派生属性。例如,当应用以下转换规则时,将显示从 givenName 和 sn 属性派生的 mail 属性。
$ dpconf add-virtual-transformation dataview1 read add-attr \ mail \${givenName}.\${sn}@example.com |
下图显示了用户条目在搜索中返回时发生的转换。
使用以下映射转换规则可以添加作为纯虚拟属性一部分的属性。例如,当应用以下转换规则时,会在服务器中存储 givenName,即使条目中未指定该属性。其值将从定义为 mail \${givenName}@example.com 的纯虚拟属性中获取。
$ dpconf add-virtual-transformation dataview1 mapping add-attr \ mail \${givenName}@example.com |
首先,添加一个包含虚拟属性 mail 而不包含 givenName 属性的条目。虚拟转换将生成 givenName 属性的值,并且将在该条目中存储 givenName 而不是 mail 属性。然后,搜索 uid 属性,检索 givenName 的值,并通过相同的虚拟转换生成虚拟属性 mail 的值。
下图显示了用户条目所发生的转换。
使用以下转换可以显示另一个属性指定的某个属性的值。例如,将 uid 的值显示为 cn 的值,同时还显示条目中已存储的 cn 值。以下示例未存储 cn 的其他值,但在结果返回至客户端之前,应用了转换。
$ dpconf add-virtual-transformation dataview1 read add-attr-value cn \${uid} |
下图显示了用户条目在搜索中返回时发生的转换。
使用以下转换规则可以存储属性的值以及添加新条目时提供的值。在以下方案中,当添加条目时,将存储 mail 属性的附加值。仅当创建新条目时才应用此转换。
$ dpconf add-virtual-transformation dataview1 write add-attr-value \ mail \${uid}@example.com |
下图显示了执行添加请求时发生的转换。
如果不希望在输出中显示某个属性,请使用以下转换规则。例如,当应用以下转换规则时,将不在输出中返回 givenName。
dpconf add-virtual-transformation dataview1 read remove-attr givenName |
下图显示了用户条目在搜索中返回时发生的转换。
如果不希望存储某个特定的属性,请使用以下转换规则。例如,当应用以下转换规则时,将不在实际的数据库中存储 givenName 属性。仅当创建新条目时才应用此转换。
$ dpconf add-virtual-transformation dataview1 write remove-attr givenName |
下图显示了执行添加请求时发生的转换。
如果要显示分配给属性的默认值,请使用以下转换。例如,当应用以下转换时,将在未包含自身电话号码的条目中显示默认电话号码。
$ dpconf add-virtual-transformation data-view read 11111 telephoneNumber default-number |
下图显示了用户条目在搜索中返回时发生的转换。
仅当在创建条目的过程中未指定属性值时,才可为该属性存储默认值。如果要存储属性的默认值,请使用以下转换规则。例如,当应用以下转换时,将为您所创建的每个条目添加一个默认电话号码。仅当添加条目时才应用此转换。
$ dpconf add-virtual-transformation dataview1 write 11111 \ telephoneNumber telephone-number |
下图显示了执行添加请求时发生的转换。