上一主题: 显式全局用户属性规则下一主题: 配给角色性能


内置规则函数

您可以在规则表达式中使用内置规则函数来对值进行各种变化。 内置规则函数调用的一般形式为

%[*]$$function(arg[,…])[:offset,length]%

其中,多值指示器星号 (*) 以及 Offset 和 Length 子字符串的指定也是可选的。

常用的内置函数如下所示:

内置规则函数

说明

ALLOF

将所有参数合并到一个多值属性中。 保留顺序但会删除重复。 例如,如果用户属性设置为以下内容:

eTCustomField01: { A, B }
eTCustomField02: { A, C }

则规则:

%*ALLOF(%*UCU01%,%*UCU02%)%

会评估为三个值 { A, B, C }。

DATE

评估为 dd/mm/yyyy 格式的当前日期。 规则表达式 %D% 相当于以下内容之一:

%$$DATE()%
%$$DATE%

FIRSTOF

返回任何参数的第一个值。 如果不设置属性则用于插入默认值:

%$$FIRSTOF(%UCU01%,'unknown')%
%$$FIRSTOF(%LN%,%UCU01%,%U%)%

如果未设置任何值,结果则是没有值。 要在参数中输入常量字符串,请将其放在单引号中。

INDEX

返回多值属性的一个值。 索引 1 是第一个值。 如果索引大于值的数目,结果则是未设置(空)值。 下列规则相当于以下内容:

%$$INDEX(%*UCU01%,1)%

%$$FIRSTOF(%*UCU01%)%

NOTEMPTY

返回其中一个参数的单一值,但如果未设置该设置时则会报告失败。

示例 1:

如果用户没有指定的 UID 属性,则使得帐户创建或更新失败:

%$$NOTEMPTY(%UID%)%

示例 2:

使用名字,除非没有设置名字,在这种情况下使用姓氏。 如果都没设置,则帐户创建或更新失败。

%$$NOTEMPTY(

%$$FIRSTOF(

%UF%,

%UL%

)%

)%

PRIMARYEMAIL

返回从多个电子邮件地址提取的主要电子邮件地址。 表达式 %UE% 相当于以下内容:

%$$PRIMARYEMAIL(%UEP%)%

RDNVALUE

将属性值视作 LDAP 可分辨名称,并从该 DN 提取对象的通用名称:

%*$$RDNVALUE(%#eTRoleDN%)%

该表达式将返回所有分配的配给角色的通用名称。 如果用户属于具有相同通用名称的两个配给角色,则列出该角色名称一次。

TOLOWER

将大写文本转化成小写:

%$$TOLOWER(%AC%)%

TOUPPER

将小写文本转化成大写:

%$$TOUPPER(%U%)%

TRIM

删除属性值中的前导和结尾空白字符。

例如,“%UF %UL%”通常会创建一个以空白字符分隔的名字和姓氏组成的值。 然而,如果用户的名字属性为空,该规则则生成一个以空白结束的值。 但使用

“%$$TRIM(%UF% %UL%)%

将确保帐户属性值中不存在前导和结尾空白,即使未设置名字或姓氏中的一个也是如此。