-# iTop - ITSM & CMDB
-
-iTop stands for *IT Operations Portal*.
-It is a complete open source, ITIL, web based service management tool including a fully customizable CMDB, a helpdesk system and a document management tool.
-iTop also offers mass import tools and web services to integrate with your IT
+iTop stands for IT Operations Portal. It is a complete open source and web based IT service management platform including a fully customizable CMDB, a helpdesk system and a document management tool. It is fully ITIL compliant and easily customizable and extensible thanks to a high number of adds-on and web services to integrate with your IT.
+
+iTop also offers mass import tools to help you being even more efficient.
## Features
- Fully configurable [Configuration Management (CMDB)][10]
From 65a0aa7abb85fdaf5a8a38834484c614eff672c8 Mon Sep 17 00:00:00 2001
From: Anne-Catherine <57360138+accognet@users.noreply.github.com>
Date: Wed, 4 May 2022 10:48:33 +0200
Subject: [PATCH 3/7] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 071f9ebc26..e78cce6515 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
-iTop stands for IT Operations Portal. It is a complete open source and web based IT service management platform including a fully customizable CMDB, a helpdesk system and a document management tool. It is fully ITIL compliant and easily customizable and extensible thanks to a high number of adds-on and web services to integrate with your IT.
+iTop stands for IT Operations Portal. It is a complete open source and web based IT service management platform including a fully customizable CMDB, a helpdesk system and a document management tool. It is ITIL compliant and easily customizable and extensible thanks to a high number of adds-on and web services to integrate with your IT.
iTop also offers mass import tools to help you being even more efficient.
From c2607c42233843045d020a560d214f94a72a3ded Mon Sep 17 00:00:00 2001
From: Molkobain
Date: Mon, 9 May 2022 13:55:06 +0200
Subject: [PATCH 4/7] =?UTF-8?q?N=C2=B05035=20-=20Setup:=20Remove=20trackin?=
=?UTF-8?q?g=20image=20at=20the=20end=20of=20the=20setup?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
setup/wizardsteps.class.inc.php | 72 ---------------------------------
1 file changed, 72 deletions(-)
diff --git a/setup/wizardsteps.class.inc.php b/setup/wizardsteps.class.inc.php
index d7db579ea7..362af67a09 100644
--- a/setup/wizardsteps.class.inc.php
+++ b/setup/wizardsteps.class.inc.php
@@ -2592,79 +2592,7 @@ class WizStepDone extends WizardStep
$sForm .= '';
$sForm .= "";
$sForm .= '';
- $sPHPVersion = phpversion();
- $sMySQLVersion = SetupUtils::GetMySQLVersion(
- $this->oWizard->GetParameter('db_server'),
- $this->oWizard->GetParameter('db_user'),
- $this->oWizard->GetParameter('db_pwd'),
- $this->oWizard->GetParameter('db_tls_enabled'),
- $this->oWizard->GetParameter('db_tls_ca')
- );
- $aParameters = json_decode($this->oWizard->GetParameter('selected_components', '{}'), true);
- $sCompactWizChoices = array();
- foreach($aParameters as $iStep => $aChoices)
- {
- $aShortChoices = array();
- foreach($aChoices as $sChoiceCode)
- {
- $sShortCode = str_replace('_', '', $sChoiceCode);
- $aShortChoices[] = $sShortCode;
- }
- $sCompactWizChoices[] = implode(' ',$aShortChoices);
- }
- $sInstallMode = 'i';
- if ($this->oWizard->GetParameter('install_mode', 'install') == 'upgrade')
- {
- if (!$this->oWizard->GetParameter('license'))
- {
- // When the version does not change we don't ask for the licence again
- $sInstallMode = 'r';
- }
- else
- {
- // An actual upgrade
- $sInstallMode = 'u';
- }
- }
- $aUrlParams = array(
- 'p' => ITOP_APPLICATION,
- 'v' => ITOP_VERSION,
- 'php' => $sPHPVersion,
- 'mysql' => $sMySQLVersion,
- 'os' => PHP_OS,
- 's' => ($this->oWizard->GetParameter('sample_data', '') == 'yes') ? 1 : 0 ,
- 'l' => $this->oWizard->GetParameter('default_language'),
- 'i' => $sInstallMode,
- 'w' => json_encode($sCompactWizChoices),
- );
- $aSafeParams = array();
- foreach($aUrlParams as $sCode => $sValue)
- {
- $aSafeParams[] = $sCode.'='.urlencode($sValue);
- }
- $sImgUrl = 'http://www.combodo.com/stats/?'.implode('&', $aSafeParams);
-
- $aAdditionalModules = array();
- foreach(json_decode($this->oWizard->GetParameter('additional_extensions_modules'), true) as $idx => $aModuleInfo)
- {
- if (in_array('_'.$idx, $aParameters[count($aParameters)-1])) {
- // Extensions "choices" can now have more than one module
- foreach ($aModuleInfo['modules'] as $sModuleName) {
- $aAdditionalModules[] = $sModuleName;
- }
- }
- }
- $idx = 0;
- $aReportedModules = array();
- while ($idx < count($aAdditionalModules) && (strlen($sImgUrl.'&m='.urlencode(implode(' ', $aReportedModules))) < 2000)) // reasonable limit for the URL: 2000 chars
- {
- $aReportedModules[] = $aAdditionalModules[$idx];
- $idx++;
- }
- $sImgUrl .= '&m='.urlencode(implode(' ', $aReportedModules));
-
- $oPage->add('');
$sForm = addslashes($sForm);
$oPage->add_ready_script("$('#wiz_form').after('$sForm');");
From f4e04477db4d3cbd75b9b4eb2c4f1f08f5164894 Mon Sep 17 00:00:00 2001
From: acognet
Date: Mon, 9 May 2022 16:08:33 +0200
Subject: [PATCH 5/7] Fix "undefined offset" error during "Anonymize" action
---
core/cmdbsource.class.inc.php | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/core/cmdbsource.class.inc.php b/core/cmdbsource.class.inc.php
index 48d67fcf4a..01f86bc8d4 100644
--- a/core/cmdbsource.class.inc.php
+++ b/core/cmdbsource.class.inc.php
@@ -705,7 +705,11 @@ class CMDBSource
private static function Commit()
{
$aStackTrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT , 3);
- $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
+ if (isset($aStackTrace[2])) {
+ $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
+ } else {
+ $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].')';
+ }
if (!self::IsInsideTransaction()) {
// should not happen !
IssueLog::Error("No Transaction COMMIT $sCaller", LogChannels::CMDB_SOURCE);
@@ -739,7 +743,11 @@ class CMDBSource
private static function Rollback()
{
$aStackTrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT , 3);
- $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
+ if (isset($aStackTrace[2])) {
+ $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
+ } else {
+ $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].')';
+ }
if (!self::IsInsideTransaction()) {
// should not happen !
IssueLog::Error("No Transaction ROLLBACK $sCaller", LogChannels::CMDB_SOURCE);
From b4e623d175b64e2925d96d0b55fe615826f680d4 Mon Sep 17 00:00:00 2001
From: acognet
Date: Mon, 9 May 2022 16:08:33 +0200
Subject: [PATCH 6/7] Fix "undefined offset" error during "Anonymize" action
---
core/cmdbsource.class.inc.php | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/core/cmdbsource.class.inc.php b/core/cmdbsource.class.inc.php
index 01f86bc8d4..1cc86b3c3f 100644
--- a/core/cmdbsource.class.inc.php
+++ b/core/cmdbsource.class.inc.php
@@ -705,12 +705,11 @@ class CMDBSource
private static function Commit()
{
$aStackTrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT , 3);
- if (isset($aStackTrace[2])) {
+ if (array_key_exists(2,$aStackTrace)) {
$sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
} else {
$sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].')';
- }
- if (!self::IsInsideTransaction()) {
+ } if (!self::IsInsideTransaction()) {
// should not happen !
IssueLog::Error("No Transaction COMMIT $sCaller", LogChannels::CMDB_SOURCE);
throw new MySQLNoTransactionException('Trying to commit transaction whereas none have been started !', null);
@@ -743,7 +742,7 @@ class CMDBSource
private static function Rollback()
{
$aStackTrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT , 3);
- if (isset($aStackTrace[2])) {
+ if (array_key_exists(2,$aStackTrace)) {
$sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
} else {
$sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].')';
From 6946bb54edec3bdef588a42a8009bc36f1d25625 Mon Sep 17 00:00:00 2001
From: acognet
Date: Wed, 11 May 2022 12:38:23 +0200
Subject: [PATCH 7/7] Revert "Fix "undefined offset" error during "Anonymize"
action"
This reverts commit b4e623d1
---
core/cmdbsource.class.inc.php | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/core/cmdbsource.class.inc.php b/core/cmdbsource.class.inc.php
index 1cc86b3c3f..48d67fcf4a 100644
--- a/core/cmdbsource.class.inc.php
+++ b/core/cmdbsource.class.inc.php
@@ -705,11 +705,8 @@ class CMDBSource
private static function Commit()
{
$aStackTrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT , 3);
- if (array_key_exists(2,$aStackTrace)) {
- $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
- } else {
- $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].')';
- } if (!self::IsInsideTransaction()) {
+ $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
+ if (!self::IsInsideTransaction()) {
// should not happen !
IssueLog::Error("No Transaction COMMIT $sCaller", LogChannels::CMDB_SOURCE);
throw new MySQLNoTransactionException('Trying to commit transaction whereas none have been started !', null);
@@ -742,11 +739,7 @@ class CMDBSource
private static function Rollback()
{
$aStackTrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT , 3);
- if (array_key_exists(2,$aStackTrace)) {
- $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
- } else {
- $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].')';
- }
+ $sCaller = 'From '.$aStackTrace[1]['file'].'('.$aStackTrace[1]['line'].'): '.$aStackTrace[2]['class'].'->'.$aStackTrace[2]['function'].'()';
if (!self::IsInsideTransaction()) {
// should not happen !
IssueLog::Error("No Transaction ROLLBACK $sCaller", LogChannels::CMDB_SOURCE);