|
|
|
@ -1403,13 +1403,15 @@ class rcube_ldap extends rcube_addressbook
|
|
|
|
|
|
|
|
|
|
foreach ((array)$this->prop['autovalues'] as $lf => $templ) {
|
|
|
|
|
if (empty($attrs[$lf])) {
|
|
|
|
|
// replace {attr} placeholders with concrete attribute values
|
|
|
|
|
$templ = preg_replace('/\{\w+\}/', '', strtr($templ, $attrvals));
|
|
|
|
|
|
|
|
|
|
if (strpos($templ, '(') !== false)
|
|
|
|
|
$attrs[$lf] = eval("return ($templ);");
|
|
|
|
|
else
|
|
|
|
|
$attrs[$lf] = $templ;
|
|
|
|
|
if (strpos($templ, '(') !== false) {
|
|
|
|
|
// replace {attr} placeholders with (escaped!) attribute values to be safely eval'd
|
|
|
|
|
$code = preg_replace('/\{\w+\}/', '', strtr($templ, array_map('addslashes', $attrvals)));
|
|
|
|
|
$attrs[$lf] = eval("return ($code);");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
// replace {attr} placeholders with concrete attribute values
|
|
|
|
|
$attrs[$lf] = preg_replace('/\{\w+\}/', '', strtr($templ, $attrvals));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|