mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-19 23:32:17 +02:00
N°6933 - SF 6.4 - Remove deprecated calls
- ManageBrickController (services access)
This commit is contained in:
@@ -32,8 +32,14 @@ use BinaryExpression;
|
|||||||
use BulkExport;
|
use BulkExport;
|
||||||
use CMDBSource;
|
use CMDBSource;
|
||||||
use Combodo\iTop\Portal\Brick\AbstractBrick;
|
use Combodo\iTop\Portal\Brick\AbstractBrick;
|
||||||
|
use Combodo\iTop\Portal\Brick\BrickCollection;
|
||||||
use Combodo\iTop\Portal\Brick\ManageBrick;
|
use Combodo\iTop\Portal\Brick\ManageBrick;
|
||||||
use Combodo\iTop\Portal\Helper\ApplicationHelper;
|
use Combodo\iTop\Portal\Helper\ApplicationHelper;
|
||||||
|
use Combodo\iTop\Portal\Helper\BrickControllerHelper;
|
||||||
|
use Combodo\iTop\Portal\Helper\RequestManipulatorHelper;
|
||||||
|
use Combodo\iTop\Portal\Helper\ScopeValidatorHelper;
|
||||||
|
use Combodo\iTop\Portal\Helper\SecurityHelper;
|
||||||
|
use Combodo\iTop\Portal\Routing\UrlGenerator;
|
||||||
use DBObject;
|
use DBObject;
|
||||||
use DBObjectSet;
|
use DBObjectSet;
|
||||||
use DBSearch;
|
use DBSearch;
|
||||||
@@ -66,6 +72,18 @@ class ManageBrickController extends BrickController
|
|||||||
/** @var string EXCEL_EXPORT_TEMPLATE_PATH */
|
/** @var string EXCEL_EXPORT_TEMPLATE_PATH */
|
||||||
const EXCEL_EXPORT_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/manage/popup-export-excel.html.twig';
|
const EXCEL_EXPORT_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/manage/popup-export-excel.html.twig';
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
protected BrickCollection $oBrickCollection,
|
||||||
|
protected ScopeValidatorHelper $oScopeValidator,
|
||||||
|
protected UrlGenerator $oUrlGenerator,
|
||||||
|
protected RequestManipulatorHelper $oRequestManipulator,
|
||||||
|
protected SecurityHelper $oSecurityHelper,
|
||||||
|
protected BrickControllerHelper $oBrickControllerHelper
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \Symfony\Component\HttpFoundation\Request $oRequest
|
* @param \Symfony\Component\HttpFoundation\Request $oRequest
|
||||||
* @param string $sBrickId
|
* @param string $sBrickId
|
||||||
@@ -85,11 +103,8 @@ class ManageBrickController extends BrickController
|
|||||||
*/
|
*/
|
||||||
public function DisplayAction(Request $oRequest, $sBrickId, $sGroupingTab, $sDisplayMode = null)
|
public function DisplayAction(Request $oRequest, $sBrickId, $sGroupingTab, $sDisplayMode = null)
|
||||||
{
|
{
|
||||||
/** @var \Combodo\iTop\Portal\Brick\BrickCollection $oBrickCollection */
|
|
||||||
$oBrickCollection = $this->get('brick_collection');
|
|
||||||
|
|
||||||
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
||||||
$oBrick = $oBrickCollection->GetBrickById($sBrickId);
|
$oBrick = $this->oBrickCollection->GetBrickById($sBrickId);
|
||||||
|
|
||||||
if (is_null($sDisplayMode)) {
|
if (is_null($sDisplayMode)) {
|
||||||
$sDisplayMode = $oBrick->GetDefaultDisplayMode();
|
$sDisplayMode = $oBrick->GetDefaultDisplayMode();
|
||||||
@@ -128,11 +143,8 @@ class ManageBrickController extends BrickController
|
|||||||
*/
|
*/
|
||||||
public function TileAction(Request $oRequest, $sBrickId)
|
public function TileAction(Request $oRequest, $sBrickId)
|
||||||
{
|
{
|
||||||
/** @var \Combodo\iTop\Portal\Brick\BrickCollection $oBrickCollection */
|
|
||||||
$oBrickCollection = $this->get('brick_collection');
|
|
||||||
|
|
||||||
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
||||||
$oBrick = $oBrickCollection->GetBrickById($sBrickId);
|
$oBrick = $this->oBrickCollection->GetBrickById($sBrickId);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -167,13 +179,8 @@ class ManageBrickController extends BrickController
|
|||||||
*/
|
*/
|
||||||
public function ExcelExportStartAction(Request $oRequest, $sBrickId, $sGroupingTab, $sGroupingArea)
|
public function ExcelExportStartAction(Request $oRequest, $sBrickId, $sGroupingTab, $sGroupingArea)
|
||||||
{
|
{
|
||||||
/** @var \Combodo\iTop\Portal\Helper\ScopeValidatorHelper $oScopeValidator */
|
|
||||||
$oScopeValidator = $this->get('scope_validator');
|
|
||||||
/** @var \Combodo\iTop\Portal\Brick\BrickCollection $oBrickCollection */
|
|
||||||
$oBrickCollection = $this->get('brick_collection');
|
|
||||||
|
|
||||||
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
||||||
$oBrick = $oBrickCollection->GetBrickById($sBrickId);
|
$oBrick = $this->oBrickCollection->GetBrickById($sBrickId);
|
||||||
$oQuery = DBSearch::FromOQL($oBrick->GetOql());
|
$oQuery = DBSearch::FromOQL($oBrick->GetOql());
|
||||||
$sClass = $oQuery->GetClass();
|
$sClass = $oQuery->GetClass();
|
||||||
$aData = $this->GetData($oRequest, $sBrickId, $sGroupingTab, true);
|
$aData = $this->GetData($oRequest, $sBrickId, $sGroupingTab, true);
|
||||||
@@ -187,7 +194,7 @@ class ManageBrickController extends BrickController
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$oScopeValidator->AddScopeToQuery($oQuery, $sClass);
|
$this->oScopeValidator->AddScopeToQuery($oQuery, $sClass);
|
||||||
$aData = array();
|
$aData = array();
|
||||||
$this->ManageSearchValue($aData, $oQuery, $sClass);
|
$this->ManageSearchValue($aData, $oQuery, $sClass);
|
||||||
|
|
||||||
@@ -287,22 +294,8 @@ class ManageBrickController extends BrickController
|
|||||||
{
|
{
|
||||||
/** @var string $sPortalId */
|
/** @var string $sPortalId */
|
||||||
$sPortalId = $this->getParameter('combodo.portal.instance.id');
|
$sPortalId = $this->getParameter('combodo.portal.instance.id');
|
||||||
|
|
||||||
/** @var \Combodo\iTop\Portal\Routing\UrlGenerator $oUrlGenerator */
|
|
||||||
$oUrlGenerator = $this->get('url_generator');
|
|
||||||
/** @var \Combodo\iTop\Portal\Helper\RequestManipulatorHelper $oRequestManipulator */
|
|
||||||
$oRequestManipulator = $this->get('request_manipulator');
|
|
||||||
/** @var \Combodo\iTop\Portal\Helper\SecurityHelper $oSecurityHelper */
|
|
||||||
$oSecurityHelper = $this->get('security_helper');
|
|
||||||
/** @var \Combodo\iTop\Portal\Helper\ScopeValidatorHelper $oScopeValidator */
|
|
||||||
$oScopeValidator = $this->get('scope_validator');
|
|
||||||
/** @var \Combodo\iTop\Portal\Helper\BrickControllerHelper */
|
|
||||||
$oBrickControllerHelper = $this->get('brick_controller_helper');
|
|
||||||
/** @var \Combodo\iTop\Portal\Brick\BrickCollection $oBrickCollection */
|
|
||||||
$oBrickCollection = $this->get('brick_collection');
|
|
||||||
|
|
||||||
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
/** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */
|
||||||
$oBrick = $oBrickCollection->GetBrickById($sBrickId);
|
$oBrick = $this->oBrickCollection->GetBrickById($sBrickId);
|
||||||
|
|
||||||
$aData = array();
|
$aData = array();
|
||||||
$aGroupingTabsValues = array();
|
$aGroupingTabsValues = array();
|
||||||
@@ -311,10 +304,10 @@ class ManageBrickController extends BrickController
|
|||||||
$bHasScope = true;
|
$bHasScope = true;
|
||||||
|
|
||||||
// Getting current data loading mode (First from router parameter, then query parameter, then default brick value)
|
// Getting current data loading mode (First from router parameter, then query parameter, then default brick value)
|
||||||
$sDataLoading = $oRequestManipulator->ReadParam('sDataLoading', $oBrick->GetDataLoading());
|
$sDataLoading = $this->oRequestManipulator->ReadParam('sDataLoading', $oBrick->GetDataLoading());
|
||||||
|
|
||||||
// - Retrieving the grouping areas to display
|
// - Retrieving the grouping areas to display
|
||||||
$sGroupingArea = $oRequestManipulator->ReadParam('sGroupingArea', '');
|
$sGroupingArea = $this->oRequestManipulator->ReadParam('sGroupingArea', '');
|
||||||
if (!empty($sGroupingArea))
|
if (!empty($sGroupingArea))
|
||||||
{
|
{
|
||||||
$bNeedDetails = true;
|
$bNeedDetails = true;
|
||||||
@@ -361,7 +354,7 @@ class ManageBrickController extends BrickController
|
|||||||
$oConditionQuery = $oQuery->Intersect($oDBSearch);
|
$oConditionQuery = $oQuery->Intersect($oDBSearch);
|
||||||
// - Restricting query to scope
|
// - Restricting query to scope
|
||||||
array_push($aConditionQueryGrouping,$oDBSearch);
|
array_push($aConditionQueryGrouping,$oDBSearch);
|
||||||
$bHasScope = $oScopeValidator->AddScopeToQuery($oConditionQuery, $oConditionQuery->GetClass());
|
$bHasScope = $this->oScopeValidator->AddScopeToQuery($oConditionQuery, $oConditionQuery->GetClass());
|
||||||
if ($bHasScope)
|
if ($bHasScope)
|
||||||
{
|
{
|
||||||
// - Building ObjectSet
|
// - Building ObjectSet
|
||||||
@@ -385,7 +378,7 @@ class ManageBrickController extends BrickController
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
$oConditionQuery = $oQuery->Intersect(new DBUnionSearch($aConditionQueryGrouping));
|
$oConditionQuery = $oQuery->Intersect(new DBUnionSearch($aConditionQueryGrouping));
|
||||||
$bHasScope = $oScopeValidator->AddScopeToQuery($oConditionQuery, $oConditionQuery->GetClass());
|
$bHasScope = $this->oScopeValidator->AddScopeToQuery($oConditionQuery, $oConditionQuery->GetClass());
|
||||||
if ($bHasScope)
|
if ($bHasScope)
|
||||||
{
|
{
|
||||||
// - Building ObjectSet
|
// - Building ObjectSet
|
||||||
@@ -439,7 +432,7 @@ class ManageBrickController extends BrickController
|
|||||||
$aData['sBrickSubtitle'] = !empty($aGroupingTabsValues[$sGroupingTab]['description']) ? $aGroupingTabsValues[$sGroupingTab]['description'] : null;
|
$aData['sBrickSubtitle'] = !empty($aGroupingTabsValues[$sGroupingTab]['description']) ? $aGroupingTabsValues[$sGroupingTab]['description'] : null;
|
||||||
|
|
||||||
// - Transforming search sort params to OQL format
|
// - Transforming search sort params to OQL format
|
||||||
$aSortedParams = $oBrickControllerHelper->ExtractSortParams();
|
$aSortedParams = $this->oBrickControllerHelper->ExtractSortParams();
|
||||||
|
|
||||||
// Preparing areas
|
// Preparing areas
|
||||||
// - We need to retrieve distinct values for the grouping attribute
|
// - We need to retrieve distinct values for the grouping attribute
|
||||||
@@ -505,7 +498,7 @@ class ManageBrickController extends BrickController
|
|||||||
// Restricting query to allowed scope on each classes
|
// Restricting query to allowed scope on each classes
|
||||||
// Note: Will need to moved the scope restriction on queries elsewhere when we consider grouping on something else than finalclass
|
// Note: Will need to moved the scope restriction on queries elsewhere when we consider grouping on something else than finalclass
|
||||||
// Note: We now get view scope instead of edit scope as we allowed users to view/edit objects in the brick regarding their rights
|
// Note: We now get view scope instead of edit scope as we allowed users to view/edit objects in the brick regarding their rights
|
||||||
$bHasScope = $oScopeValidator->AddScopeToQuery($oAreaQuery, $aGroupingAreasValue['value']);
|
$bHasScope = $this->oScopeValidator->AddScopeToQuery($oAreaQuery, $aGroupingAreasValue['value']);
|
||||||
if (!$bHasScope)
|
if (!$bHasScope)
|
||||||
{
|
{
|
||||||
// if no scope apply does not allow any data
|
// if no scope apply does not allow any data
|
||||||
@@ -546,8 +539,8 @@ class ManageBrickController extends BrickController
|
|||||||
if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY)
|
if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY)
|
||||||
{
|
{
|
||||||
// Retrieving parameters
|
// Retrieving parameters
|
||||||
$iPageNumber = (int)$oRequestManipulator->ReadParam('iPageNumber', 1, FILTER_SANITIZE_NUMBER_INT);
|
$iPageNumber = (int)$this->oRequestManipulator->ReadParam('iPageNumber', 1, FILTER_SANITIZE_NUMBER_INT);
|
||||||
$iListLength = (int)$oRequestManipulator->ReadParam('iListLength', ManageBrick::DEFAULT_LIST_LENGTH,
|
$iListLength = (int)$this->oRequestManipulator->ReadParam('iListLength', ManageBrick::DEFAULT_LIST_LENGTH,
|
||||||
FILTER_SANITIZE_NUMBER_INT);
|
FILTER_SANITIZE_NUMBER_INT);
|
||||||
|
|
||||||
// Getting total records number
|
// Getting total records number
|
||||||
@@ -591,7 +584,7 @@ class ManageBrickController extends BrickController
|
|||||||
// Note: $aColumnToLoad already contains array of aliases => attcodes
|
// Note: $aColumnToLoad already contains array of aliases => attcodes
|
||||||
$oSet->OptimizeColumnLoad($aColumnsToLoad);
|
$oSet->OptimizeColumnLoad($aColumnsToLoad);
|
||||||
|
|
||||||
$oSecurityHelper->PreloadForCache($oSet->GetFilter(),
|
$this->oSecurityHelper->PreloadForCache($oSet->GetFilter(),
|
||||||
$aColumnsToLoad[$oQuery->GetClassAlias()] /* preloading only extkeys from the main class */);
|
$aColumnsToLoad[$oQuery->GetClassAlias()] /* preloading only extkeys from the main class */);
|
||||||
$aSets[$sKey] = $oSet;
|
$aSets[$sKey] = $oSet;
|
||||||
}
|
}
|
||||||
@@ -639,13 +632,13 @@ class ManageBrickController extends BrickController
|
|||||||
if ($sItemAttr === $sMainActionAttrCode)
|
if ($sItemAttr === $sMainActionAttrCode)
|
||||||
{
|
{
|
||||||
// Checking if we can edit the object
|
// Checking if we can edit the object
|
||||||
if (($oBrick->GetOpeningMode() === ManageBrick::ENUM_ACTION_EDIT) && $oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY,
|
if (($oBrick->GetOpeningMode() === ManageBrick::ENUM_ACTION_EDIT) && $this->oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY,
|
||||||
$sCurrentClass, $oCurrentRow->GetKey()))
|
$sCurrentClass, $oCurrentRow->GetKey()))
|
||||||
{
|
{
|
||||||
$sActionType = ManageBrick::ENUM_ACTION_EDIT;
|
$sActionType = ManageBrick::ENUM_ACTION_EDIT;
|
||||||
}
|
}
|
||||||
// - Otherwise, check if view is allowed
|
// - Otherwise, check if view is allowed
|
||||||
elseif ($oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sCurrentClass,
|
elseif ($this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sCurrentClass,
|
||||||
$oCurrentRow->GetKey()))
|
$oCurrentRow->GetKey()))
|
||||||
{
|
{
|
||||||
$sActionType = ManageBrick::ENUM_ACTION_VIEW;
|
$sActionType = ManageBrick::ENUM_ACTION_VIEW;
|
||||||
@@ -679,7 +672,7 @@ class ManageBrickController extends BrickController
|
|||||||
if ($oCurrentRow->Get($sItemAttr) !== $oAttDef->GetNullValue())
|
if ($oCurrentRow->Get($sItemAttr) !== $oAttDef->GetNullValue())
|
||||||
{
|
{
|
||||||
// Checking if we can view the object
|
// Checking if we can view the object
|
||||||
if (($oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $oAttDef->GetTargetClass(),
|
if (($this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $oAttDef->GetTargetClass(),
|
||||||
$oCurrentRow->Get($sItemAttr))))
|
$oCurrentRow->Get($sItemAttr))))
|
||||||
{
|
{
|
||||||
$aActions[] = array(
|
$aActions[] = array(
|
||||||
@@ -697,7 +690,7 @@ class ManageBrickController extends BrickController
|
|||||||
$oOrmDoc = $oCurrentRow->Get($sItemAttr);
|
$oOrmDoc = $oCurrentRow->Get($sItemAttr);
|
||||||
if (is_object($oOrmDoc) && !$oOrmDoc->IsEmpty())
|
if (is_object($oOrmDoc) && !$oOrmDoc->IsEmpty())
|
||||||
{
|
{
|
||||||
$sUrl = $oUrlGenerator->generate('p_object_document_display', [
|
$sUrl = $this->oUrlGenerator->generate('p_object_document_display', [
|
||||||
'sObjectClass' => get_class($oCurrentRow),
|
'sObjectClass' => get_class($oCurrentRow),
|
||||||
'sObjectId' => $oCurrentRow->GetKey(),
|
'sObjectId' => $oCurrentRow->GetKey(),
|
||||||
'sObjectField' => $sItemAttr,
|
'sObjectField' => $sItemAttr,
|
||||||
@@ -846,7 +839,7 @@ class ManageBrickController extends BrickController
|
|||||||
'label' => $aValues['label'],
|
'label' => $aValues['label'],
|
||||||
'label_html' => $aValues['label_html'],
|
'label_html' => $aValues['label_html'],
|
||||||
);
|
);
|
||||||
$aUrls[] = $oUrlGenerator->generate('p_manage_brick_display_as', array(
|
$aUrls[] = $this->oUrlGenerator->generate('p_manage_brick_display_as', array(
|
||||||
'sBrickId' => $sBrickId,
|
'sBrickId' => $sBrickId,
|
||||||
'sDisplayMode' => 'list',
|
'sDisplayMode' => 'list',
|
||||||
'sGroupingTab' => $aValues['value'],
|
'sGroupingTab' => $aValues['value'],
|
||||||
@@ -894,11 +887,8 @@ class ManageBrickController extends BrickController
|
|||||||
*/
|
*/
|
||||||
protected function ManageSearchValue(&$aData, DBSearch &$oQuery, $sClass, $aColumnsAttrs = array())
|
protected function ManageSearchValue(&$aData, DBSearch &$oQuery, $sClass, $aColumnsAttrs = array())
|
||||||
{
|
{
|
||||||
/** @var \Combodo\iTop\Portal\Helper\RequestManipulatorHelper $oRequestManipulator */
|
|
||||||
$oRequestManipulator = $this->get('request_manipulator');
|
|
||||||
|
|
||||||
// Getting search value
|
// Getting search value
|
||||||
$sRawSearchValue = trim($oRequestManipulator->ReadParam('sSearchValue', ''));
|
$sRawSearchValue = trim($this->oRequestManipulator->ReadParam('sSearchValue', ''));
|
||||||
$sSearchValue = html_entity_decode($sRawSearchValue);
|
$sSearchValue = html_entity_decode($sRawSearchValue);
|
||||||
|
|
||||||
// - Adding search clause if necessary
|
// - Adding search clause if necessary
|
||||||
@@ -960,13 +950,11 @@ class ManageBrickController extends BrickController
|
|||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
protected function GroupByAttribute(DBSearch $oQuery, $sGroupingTabAttCode, ManageBrick $oBrick) {
|
protected function GroupByAttribute(DBSearch $oQuery, $sGroupingTabAttCode, ManageBrick $oBrick) {
|
||||||
/** @var \Combodo\iTop\Portal\Helper\ScopeValidatorHelper $oScopeValidator */
|
|
||||||
$oScopeValidator = $this->get('scope_validator');
|
|
||||||
|
|
||||||
$aGroupingTabsValues = array();
|
$aGroupingTabsValues = array();
|
||||||
$aDistinctResults = array();
|
$aDistinctResults = array();
|
||||||
$oDistinctQuery = DBSearch::FromOQL($oBrick->GetOql());
|
$oDistinctQuery = DBSearch::FromOQL($oBrick->GetOql());
|
||||||
$bHasScope = $oScopeValidator->AddScopeToQuery($oDistinctQuery, $oDistinctQuery->GetClass());
|
$bHasScope = $this->oScopeValidator->AddScopeToQuery($oDistinctQuery, $oDistinctQuery->GetClass());
|
||||||
if ($bHasScope)
|
if ($bHasScope)
|
||||||
{
|
{
|
||||||
// - Adding field condition
|
// - Adding field condition
|
||||||
@@ -1073,11 +1061,8 @@ class ManageBrickController extends BrickController
|
|||||||
*/
|
*/
|
||||||
protected function GetScopedQuery(ManageBrick $oBrick, $sClass)
|
protected function GetScopedQuery(ManageBrick $oBrick, $sClass)
|
||||||
{
|
{
|
||||||
/** @var \Combodo\iTop\Portal\Helper\ScopeValidatorHelper $oScopeValidator */
|
|
||||||
$oScopeValidator = $this->get('scope_validator');
|
|
||||||
|
|
||||||
$oQuery = DBSearch::FromOQL($oBrick->GetOql());
|
$oQuery = DBSearch::FromOQL($oBrick->GetOql());
|
||||||
$oScopeValidator->AddScopeToQuery($oQuery, $sClass);
|
$this->oScopeValidator->AddScopeToQuery($oQuery, $sClass);
|
||||||
|
|
||||||
return $oQuery;
|
return $oQuery;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user