diff --git a/include/class_objects.inc b/include/class_objects.inc index 8d8cf0233d67a3a5430b8f1a1e810ca039846261..2b9db93ba62685a53f21dcd8d7f25829f8df1c11 100644 --- a/include/class_objects.inc +++ b/include/class_objects.inc @@ -58,8 +58,9 @@ class objects if (count($types) > 1) { throw new FusionDirectoryException('Cannot evaluate ACL for several types'); } - $infos = static::infos(reset($types)); - $acl = $infos['aclCategory'].'/'.$infos['mainTab']; + $infos = static::infos(reset($types)); + $acl = $infos['aclCategory'].'/'.$infos['mainTab']; + $tplAcl = $infos['aclCategory'].'/template'; } $attrsAcls = array(); @@ -102,6 +103,7 @@ class objects $search_attrs = array_keys($attrs); if ($templateSearch) { $search_attrs[] = 'fdTemplateField'; + $search_attrs[] = 'cn'; } } else { $search_attrs = array($attrs); @@ -146,6 +148,12 @@ class objects } } if ($templateSearch) { + if ( + isset($fetched_attrs['cn']) && + (!$checkAcl || (strpos($ui->get_permissions($key, $tplAcl, 'template_cn'), 'r') !== FALSE)) + ) { + $result[$key]['cn'] = $fetched_attrs['cn'][0]; + } $result[$key]['fdTemplateField'] = array(); foreach ($fetched_attrs['fdTemplateField'] as $templateField) { $attr = explode(':', $templateField, 2)[0];