diff --git a/core/dbsearch.class.php b/core/dbsearch.class.php
index 699c494b3..6ee33e931 100644
--- a/core/dbsearch.class.php
+++ b/core/dbsearch.class.php
@@ -835,4 +835,9 @@ abstract class DBSearch
CMDBSource::Query($sUpdateQuery);
}
}
+
+ public function UpdateContextFromUser()
+ {
+ $this->SetShowObsoleteData(utils::ShowObsoleteData());
+ }
}
diff --git a/pages/UI.php b/pages/UI.php
index 967a7bf39..b57dfed2f 100644
--- a/pages/UI.php
+++ b/pages/UI.php
@@ -520,8 +520,8 @@ try
throw new ApplicationException(Dict::Format('UI:Error:1ParametersMissing', 'filter'));
}
$oP->set_title(Dict::S('UI:SearchResultsPageTitle'));
- // TO DO: limit the search filter by the user context
$oFilter = DBSearch::unserialize($sFilter); // TO DO : check that the filter is valid
+ $oFilter->UpdateContextFromUser();
DisplaySearchSet($oP, $oFilter, $bSearchForm, '' /* sBaseClass */, $sFormat);
break;
@@ -677,9 +677,10 @@ EOF
{
throw new ApplicationException(Dict::Format('UI:Error:1ParametersMissing', 'filter'));
}
- // TO DO: limit the search filter by the user context
$oFilter = DBObjectSearch::unserialize($sFilter); // TO DO : check that the filter is valid
- $sClass = $oFilter->GetClass();
+ // Add user filter
+ $oFilter->UpdateContextFromUser();
+ $sClass = $oFilter->GetClass();
$oChecker = new ActionChecker($oFilter, UR_ACTION_BULK_MODIFY);
$oP->add("
".Dict::S('UI:ModifyAllPageTitle')."
\n");
@@ -692,6 +693,8 @@ EOF
$sFilter = utils::ReadParam('filter', '', false, 'raw_data');
$sClass = utils::ReadParam('class', '', false, 'class');
$oFullSetFilter = DBObjectSearch::unserialize($sFilter);
+ // Add user filter
+ $oFullSetFilter->UpdateContextFromUser();
$aSelectedObj = utils::ReadMultipleSelection($oFullSetFilter);
$sCancelUrl = "./UI.php?operation=search&filter=".urlencode($sFilter)."&".$oAppContext->GetForLink();
$aContext = array('filter' => $sFilter);
@@ -703,8 +706,9 @@ EOF
case 'preview_or_modify_all': // Preview or apply bulk modify
$oP->DisableBreadCrumb();
$sFilter = utils::ReadParam('filter', '', false, 'raw_data');
- // TO DO: limit the search filter by the user context
$oFilter = DBObjectSearch::unserialize($sFilter); // TO DO : check that the filter is valid
+ // Add user filter
+ $oFilter->UpdateContextFromUser();
$oChecker = new ActionChecker($oFilter, UR_ACTION_BULK_MODIFY);
$sClass = utils::ReadParam('class', '', false, 'class');
@@ -958,8 +962,8 @@ EOF
}
$oP->set_title(Dict::S('UI:BulkDeletePageTitle'));
$oP->add("".Dict::S('UI:BulkDeleteTitle')."
\n");
- // TO DO: limit the search filter by the user context
$oFilter = DBSearch::unserialize($sFilter); // TO DO : check that the filter is valid
+ $oFilter->UpdateContextFromUser();
$oChecker = new ActionChecker($oFilter, UR_ACTION_BULK_DELETE);
DisplayMultipleSelectionForm($oP, $oFilter, 'bulk_delete', $oChecker);
break;
@@ -999,6 +1003,8 @@ EOF
// Several objects
$sFilter = utils::ReadPostedParam('filter', '');
$oFullSetFilter = DBObjectSearch::unserialize($sFilter);
+ // Add user filter
+ $oFullSetFilter->UpdateContextFromUser();
$aSelectObject = utils::ReadMultipleSelection($oFullSetFilter);
if ( empty($sClass) || empty($aSelectObject)) // TO DO: check that the class name is valid !
{
@@ -1113,7 +1119,8 @@ EOF
throw new ApplicationException(Dict::Format('UI:Error:3ParametersMissing', 'filter', 'stimulus', 'state'));
}
$oFilter = DBObjectSearch::unserialize($sFilter);
- $sClass = $oFilter->GetClass();
+ $oFilter->UpdateContextFromUser();
+ $sClass = $oFilter->GetClass();
$aStimuli = MetaModel::EnumStimuli($sClass);
$sActionLabel = $aStimuli[$sStimulus]->GetLabel();
$sActionDetails = $aStimuli[$sStimulus]->GetDescription();
@@ -1137,7 +1144,9 @@ EOF
throw new ApplicationException(Dict::Format('UI:Error:3ParametersMissing', 'filter', 'stimulus', 'state'));
}
$oFilter = DBObjectSearch::unserialize($sFilter);
- $sClass = $oFilter->GetClass();
+ // Add user filter
+ $oFilter->UpdateContextFromUser();
+ $sClass = $oFilter->GetClass();
$aSelectObject = utils::ReadMultipleSelection($oFilter);
if (count($aSelectObject) == 0)
{
@@ -1314,6 +1323,8 @@ EOF
{
// For archiving the modification
$oFilter = DBObjectSearch::unserialize($sFilter);
+ // Add user filter
+ $oFilter->UpdateContextFromUser();
$sClass = $oFilter->GetClass();
$aObjects = array();
foreach($aSelectObject as $iId)