diff --git a/include/class_objects.inc b/include/class_objects.inc index 6614ef8602ac14faf87e7cf6104d77892fd2077c..03067903937b47fc042399f8d0e73ae6b0738f45 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 c07b3d11a149024976dcf694705d787182192273..f16f14fe031a3f8c68441fa74b475d9621fc7f03 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);