From 8b820ce40388fd55d83301ab546ee2d703499900 Mon Sep 17 00:00:00 2001 From: Guillaume Lajarige Date: Tue, 20 Jun 2017 15:28:31 +0000 Subject: [PATCH] =?UTF-8?q?N=C2=B0900=20Portal:=20Fixed=20wrong=20count=20?= =?UTF-8?q?on=20ManageBrick=20tabs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SVN:trunk[4765] --- .../managebrickcontroller.class.inc.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php index bc6daf854..baa3c81b3 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php @@ -124,6 +124,18 @@ class ManageBrickController extends BrickController $sGroupingTabAttCode = $aGroupingTabs['attribute']; $oDistinctQuery = DBSearch::FromOQL($oBrick->GetOql()); + // - Restricting query to scope + $oScopeQuery = $oApp['scope_validator']->GetScopeFilterForProfiles(UserRights::ListProfiles(), $oDistinctQuery->GetClass(), UR_ACTION_READ); + if ($oScopeQuery !== null) + { + $oDistinctQuery = $oDistinctQuery->Intersect($oScopeQuery); + // - Allowing all data if necessary + if ($oScopeQuery->IsAllDataAllowed()) + { + $oDistinctQuery->AllowAllData(); + } + } + // - Adding field condition $oFieldExp = new FieldExpression($sGroupingTabAttCode, $oDistinctQuery->GetClassAlias()); $sDistinctSql = $oDistinctQuery->MakeGroupByQuery(array(), array('grouped_by_1' => $oFieldExp), true); $aDistinctResults = CMDBSource::QueryToArray($sDistinctSql); @@ -162,6 +174,18 @@ class ManageBrickController extends BrickController foreach ($aGroupingTabs['groups'] as $aGroup) { $oConditionQuery = DBSearch::FromOQL($aGroup['condition']); + // - Restricting query to scope + $oScopeQuery = $oApp['scope_validator']->GetScopeFilterForProfiles(UserRights::ListProfiles(), $oConditionQuery->GetClass(), UR_ACTION_READ); + if ($oScopeQuery !== null) + { + $oConditionQuery = $oConditionQuery->Intersect($oScopeQuery); + // - Allowing all data if necessary + if ($oScopeQuery->IsAllDataAllowed()) + { + $oConditionQuery->AllowAllData(); + } + } + // - Building ObjectSet $oConditionSet = new DBObjectSet($oConditionQuery); $aGroupingTabsValues[$aGroup['id']] = array(