From 3ff35db789defe5f5afc8cf543d10034f0b68323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Wed, 27 Jun 2018 15:25:16 +0200 Subject: [PATCH] :ambulance: fix(core) Fix objects::ls fetch of fdTemplateField and Properties column for templates issue #5135 --- include/class_objects.inc | 19 +++++++++++++++++++ .../columns/class_PropertiesColumn.inc | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/include/class_objects.inc b/include/class_objects.inc index 6614ef860..030679039 100644 --- a/include/class_objects.inc +++ b/include/class_objects.inc @@ -100,6 +100,9 @@ class objects if (is_array($attrs)) { $search_attrs = array_keys($attrs); + if ($templateSearch) { + $search_attrs[] = 'fdTemplateField'; + } } else { $search_attrs = array($attrs); } @@ -142,6 +145,22 @@ class objects } } } + if ($templateSearch) { + $result[$key]['fdTemplateField'] = array(); + foreach ($fetched_attrs['fdTemplateField'] as $templateField) { + $attr = explode(':', $templateField, 2)[0]; + if (isset($attrs[$attr])) { + if (isset($attrsAcls[$attr]) && + (strpos($ui->get_permissions($key, $attrsAcls[$attr][0], $attrsAcls[$attr][1]), 'r') === FALSE)) { + continue; + } + $result[$key]['fdTemplateField'][] = $templateField; + } + } + if (empty($result[$key]['fdTemplateField'])) { + unset($result[$key]['fdTemplateField']); + } + } if (count($result[$key]) === 0) { unset($result[$key]); } diff --git a/include/management/columns/class_PropertiesColumn.inc b/include/management/columns/class_PropertiesColumn.inc index c07b3d11a..f16f14fe0 100644 --- a/include/management/columns/class_PropertiesColumn.inc +++ b/include/management/columns/class_PropertiesColumn.inc @@ -126,7 +126,7 @@ class PropertiesColumn extends Column } else { $attrs = $entry; } - foreach ($this->tabs[$entry->type] as $class) { + foreach ($this->tabs[$entry->getTemplatedType()] as $class) { $status = $class::isAccount($attrs); if ($status !== FALSE) { $pInfos = pluglist::pluginInfos($class); -- GitLab