From 1c2faadd71da9e158b4bd7bf4217507f66516b30 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Thu, 15 Nov 2018 15:47:06 +0100
Subject: [PATCH] :ambulance: fix(objects) Template search should return cn as
 well

issue #5135
---
 include/class_objects.inc | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/include/class_objects.inc b/include/class_objects.inc
index 8d8cf0233..2b9db93ba 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];
-- 
GitLab