diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php index dc15ed258..6dff2abf2 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php @@ -24,6 +24,7 @@ use \Symfony\Component\HttpFoundation\Request; use \Exception; use \UserRights; use \Dict; +use \IssueLog; use \MetaModel; use \DBSearch; use \DBObjectSearch; @@ -64,10 +65,12 @@ class BrowseBrickController extends BrickController // Concistency checks if (!in_array($sBrowseMode, array_keys($aBrowseModes))) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Unknown browse mode "' . $sBrowseMode . '" for brick #' . $sBrickId . ', availables are ' . implode(' / ', array_keys($aBrowseModes))); $oApp->abort(500, 'Browse brick "' . $sBrickId . '" : Unknown browse mode "' . $sBrowseMode . '", availables are ' . implode(' / ', array_keys($aBrowseModes))); } if (empty($aLevelsProperties)) { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : No levels to display for brick #' . $sBrickId . '.'); $oApp->abort(500, 'Browse brick "' . $sBrickId . '" : No levels to display.'); } @@ -235,6 +238,7 @@ class BrowseBrickController extends BrickController if (!$bFoundLevel) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Level alias "' . $sLevelAlias . '" is not defined for brick #' . $sBrickId . '.'); $oApp->abort(500, 'Browse brick "' . $sBrickId . '" : Level alias "' . $sLevelAlias . '" is not defined for that brick.'); } } diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php index 69201966f..d06a1d912 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php @@ -28,6 +28,7 @@ use \Exception; use \FileUploadException; use \utils; use \Dict; +use \IssueLog; use \MetaModel; use \DBSearch; use \DBObjectSearch; @@ -70,12 +71,14 @@ class ObjectController extends AbstractController // Checking parameters if ($sObjectClass === '' || $sObjectId === '') { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : sObjectClass and sObjectId expected, "' . $sObjectClass . '" and "' . $sObjectId . '" given.'); $oApp->abort(500, Dict::Format('UI:Error:2ParametersMissing', 'class', 'id')); } // Checking security layers if (!SecurityHelper::IsActionAllowed($oApp, UR_ACTION_READ, $sObjectClass, $sObjectId)) { + IssueLog::Warning(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' not allowed to read ' . $sObjectClass . '::' . $sObjectId . ' object.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -84,6 +87,7 @@ class ObjectController extends AbstractController if ($oObject === null) { // We should never be there as the secuirty helper makes sure that the object exists, but just in case. + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : Could not load object ' . $sObjectClass . '::' . $sObjectId . '.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -137,6 +141,7 @@ class ObjectController extends AbstractController // Checking parameters if ($sObjectClass === '' || $sObjectId === '') { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : sObjectClass and sObjectId expected, "' . $sObjectClass . '" and "' . $sObjectId . '" given.'); $oApp->abort(500, Dict::Format('UI:Error:2ParametersMissing', 'class', 'id')); } @@ -145,6 +150,7 @@ class ObjectController extends AbstractController $bAllowWrite = ($sObjectClass === 'Person' && $sObjectId == UserRights::GetContactId()); if (!SecurityHelper::IsActionAllowed($oApp, UR_ACTION_MODIFY, $sObjectClass, $sObjectId) && !$bAllowWrite) { + IssueLog::Warning(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' not allowed to modify ' . $sObjectClass . '::' . $sObjectId . ' object.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -153,6 +159,7 @@ class ObjectController extends AbstractController if ($oObject === null) { // We should never be there as the secuirty helper makes sure that the object exists, but just in case. + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : Could not load object ' . $sObjectClass . '::' . $sObjectId . '.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -205,6 +212,7 @@ class ObjectController extends AbstractController // Checking security layers if (!SecurityHelper::IsActionAllowed($oApp, UR_ACTION_CREATE, $sObjectClass)) { + IssueLog::Warning(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' not allowed to create ' . $sObjectClass . ' object.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -262,6 +270,7 @@ class ObjectController extends AbstractController // Checking that the factory method is valid if (!is_callable($sMethodName)) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Invalid factory method "' . $sMethodName . '" used when creating an object.'); $oApp->abort(500, 'Invalid factory method "' . $sMethodName . '" used when creating an object'); } @@ -306,6 +315,7 @@ class ObjectController extends AbstractController // Checking parameters if ($sObjectClass === '' || $sObjectId === '' || $sStimulusCode === '') { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : sObjectClass, sObjectId and $sStimulusCode expected, "' . $sObjectClass . '", "' . $sObjectId . '" and "' . $sStimulusCode . '" given.'); $oApp->abort(500, Dict::Format('UI:Error:3ParametersMissing', 'class', 'id', 'stimulus')); } @@ -321,6 +331,7 @@ class ObjectController extends AbstractController if ($oObject === null) { // We should never be there as the secuirty helper makes sure that the object exists, but just in case. + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : Could not load object ' . $sObjectClass . '::' . $sObjectId . '.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -475,6 +486,7 @@ class ObjectController extends AbstractController $sFormManagerData = $oRequestParams->get('formmanager_data'); if ($sFormManagerClass === null || $sFormManagerData === null) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Parameters formmanager_class and formamanager_data must be defined.'); $oApp->abort(500, 'Parameters formmanager_class and formmanager_data must be defined.'); } @@ -595,6 +607,7 @@ class ObjectController extends AbstractController // Checking parameters if (!isset($aRequestContent['sQuery'])) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Parameter sQuery missing.'); $oApp->abort(500, Dict::Format('UI:Error:ParameterMissing', 'sQuery')); } @@ -604,6 +617,7 @@ class ObjectController extends AbstractController // Checking security layers if (!SecurityHelper::IsActionAllowed($oApp, UR_ACTION_READ, $sHostObjectClass, $sHostObjectId)) { + IssueLog::Warning(__METHOD__ . ' at line ' . __LINE__ . ' : Could not load object ' . $sHostObjectClass . '::' . $sHostObjectId . '.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -685,6 +699,7 @@ class ObjectController extends AbstractController // Checking security layers if (!SecurityHelper::IsActionAllowed($oApp, UR_ACTION_READ, $sHostObjectClass, $sHostObjectId)) { + IssueLog::Warning(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' not allowed to read ' . $sHostObjectClass . '::' . $sHostObjectId . ' object.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -752,6 +767,7 @@ class ObjectController extends AbstractController $aInternalParams = array(); if ($oScopeSearch === null) { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' has no scope query for ' . $sTargetObjectClass . ' class.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -929,6 +945,7 @@ class ObjectController extends AbstractController // Checking security layers if (!SecurityHelper::IsActionAllowed($oApp, UR_ACTION_READ, $sHostObjectClass, $sHostObjectId)) { + IssueLog::Warning(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' not allowed to read ' . $sHostObjectClass . '::' . $sHostObjectId . ' object.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -984,6 +1001,7 @@ class ObjectController extends AbstractController $oScopeSearch = $oApp['scope_validator']->GetScopeFilterForProfiles(UserRights::ListProfiles(), $sTargetObjectClass, UR_ACTION_READ); if ($oScopeSearch === null) { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : User #' . UserRights::GetUserId() . ' has no scope query for ' . $sTargetObjectClass . ' class.'); $oApp->abort(404, Dict::S('UI:ObjectDoesNotExist')); } @@ -1219,6 +1237,7 @@ class ObjectController extends AbstractController $aObjectAttCodes = $oRequest->Get('aObjectAttCodes'); if ($sObjectClass === null || $aObjectIds === null || $aObjectAttCodes === null) { + IssueLog::Info(__METHOD__ . ' at line ' . __LINE__ . ' : sObjectClass, sObjectId and aObjectAttCodes expected, "' . $sObjectClass . '", "' . $sObjectId . '" given.'); $oApp->abort(500, 'Invalid request data, some informations are missing'); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/userprofilebrickcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/userprofilebrickcontroller.class.inc.php index c2b125dcf..a5b64263d 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/userprofilebrickcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/userprofilebrickcontroller.class.inc.php @@ -20,6 +20,7 @@ namespace Combodo\iTop\Portal\Controller; use \Exception; +use \IssueLog; use \MetaModel; use \UserRights; use \Silex\Application; @@ -140,6 +141,7 @@ class UserProfileBrickController extends BrickController $sFormManagerData = $oRequestParams->get('formmanager_data'); if ($sFormManagerClass === null || $sFormManagerData === null) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Parameters formmanager_class and formamanager_data must be defined.'); $oApp->abort(500, 'Parameters formmanager_class and formmanager_data must be defined.'); } @@ -202,6 +204,7 @@ class UserProfileBrickController extends BrickController $sFormManagerData = $oRequestParams->get('formmanager_data'); if ($sFormManagerClass === null || $sFormManagerData === null) { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Parameters formmanager_class and formamanager_data must be defined.'); $oApp->abort(500, 'Parameters formmanager_class and formmanager_data must be defined.'); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php index a3b4aa9cd..e999817a0 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php @@ -23,6 +23,7 @@ use \Exception; use \Silex\Application; use \utils; use \Dict; +use \IssueLog; use \UserRights; use \MetaModel; use \CMDBSource; @@ -377,6 +378,7 @@ class ObjectFormManager extends FormManager } else { + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Flag "' . $sFieldFlag . '" is not valid for field [@data-field-id="' . $sFieldId . '"] in form[@id="' . $this->aFormProperties['id'] . '"]'); throw new Exception('Flag "' . $sFieldFlag . '" is not valid for field [@data-field-id="' . $sFieldId . '"] in form[@id="' . $this->aFormProperties['id'] . '"]'); } } @@ -697,6 +699,7 @@ class ObjectFormManager extends FormManager CMDBSource::Query('ROLLBACK'); $aData['valid'] = false; $aData['messages']['error'] += array('_main' => array($e->getMessage())); + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Rollback during submit (' . $e->getMessage() . ')'); } } else diff --git a/datamodels/2.x/itop-portal-base/portal/src/forms/passwordformmanager.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/forms/passwordformmanager.class.inc.php index 44abbe84c..eda7dc551 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/forms/passwordformmanager.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/forms/passwordformmanager.class.inc.php @@ -140,6 +140,7 @@ class PasswordFormManager extends FormManager { $aData['valid'] = false; $aData['messages']['error'] += array('_main' => array($e->getMessage())); + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Exception during submit (' . $e->getMessage() . ')'); } } else diff --git a/datamodels/2.x/itop-portal-base/portal/src/forms/preferencesformmanager.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/forms/preferencesformmanager.class.inc.php index b1b1041f2..a74d5b66d 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/forms/preferencesformmanager.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/forms/preferencesformmanager.class.inc.php @@ -133,6 +133,7 @@ class PreferencesFormManager extends FormManager CMDBSource::Query('ROLLBACK'); $aData['valid'] = false; $aData['messages']['error'] += array('_main' => array($e->getMessage())); + IssueLog::Error(__METHOD__ . ' at line ' . __LINE__ . ' : Rollback during submit (' . $e->getMessage() . ')'); } } else