From 64ca3d89da7e9f23b1ecb3d69b7cee53ad554069 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Mon, 13 May 2019 10:19:49 +0200
Subject: [PATCH] :ambulance: fix(core) Fix subtabs attribute ACL search

Will be used by servicesManagement so that dashboard can search for
 services attribute without crash.

issue #5967
---
 include/class_config.inc                     | 2 +-
 include/class_userinfo.inc                   | 8 +++++---
 plugins/config/class_pluginsConfigInLdap.inc | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/include/class_config.inc b/include/class_config.inc
index 3ed86da24..964b66a01 100644
--- a/include/class_config.inc
+++ b/include/class_config.inc
@@ -895,7 +895,7 @@ class config
       if (isset($plInfo['plObjectType'])) {
         $entry = ['CLASS' => $class,'NAME' => $plInfo['plShortName']];
         if (isset($plInfo['plSubTabs'])) {
-          $entry['SUBTABS'] = strtoupper($plInfo['plSubTabs']).'TABS';
+          $entry['SUBTABS'] = strtoupper($plInfo['plSubTabs']);
         }
         foreach ($plInfo['plObjectType'] as $key => $value) {
           if (is_numeric($key)) {
diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc
index 87209594a..5579feb9e 100644
--- a/include/class_userinfo.inc
+++ b/include/class_userinfo.inc
@@ -1019,21 +1019,23 @@ class userinfo
 
     if (is_array($type)) {
       /* Used for recursion through subtabs */
-      $tabs = $type;
+      $prefix = '';
+      $tabs   = $type;
     } else {
       /* Usual workflow */
       $infos  = objects::infos($type);
+      $prefix = $infos['aclCategory'].'/';
       $tabs   = $config->data['TABS'][$infos['tabGroup']];
     }
     foreach ($tabs as $tab) {
       $acls = pluglist::pluginInfos($tab['CLASS'])['plProvidedAcls'];
       if (isset($acls[$attribute])) {
-        return $infos['aclCategory'].'/'.$tab['CLASS'];
+        return $prefix.$tab['CLASS'];
       }
       if (isset($tab['SUBTABS'])) {
         $acl = $this->getAttributeCategory($config->data['TABS'][$tab['SUBTABS']], $attribute);
         if ($acl !== FALSE) {
-          return $acl;
+          return $prefix.$acl;
         }
       }
     }
diff --git a/plugins/config/class_pluginsConfigInLdap.inc b/plugins/config/class_pluginsConfigInLdap.inc
index 6535b3bc6..da098e04c 100644
--- a/plugins/config/class_pluginsConfigInLdap.inc
+++ b/plugins/config/class_pluginsConfigInLdap.inc
@@ -29,7 +29,7 @@ class pluginsConfigInLdap extends multiPlugin
       'plDescription' => _('Configuration for plugins'),
       'plPriority'    => 2,
       'plObjectType'  => ['configuration'],
-      'plSubTabs'     => 'smallConfig',
+      'plSubTabs'     => 'SMALLCONFIGTABS',
 
       'plProvidedAcls'  => []
     ];
-- 
GitLab