mirror of
https://github.com/Combodo/iTop.git
synced 2026-06-24 00:36:37 +02:00
N°9690 Removed and added modules/extensions are now read from GET parameters
This commit is contained in:
@@ -6,12 +6,6 @@ require_once(dirname(__DIR__, 6).'/approot.inc.php');
|
||||
require_once(APPROOT.'application/startup.inc.php');
|
||||
require_once(APPROOT.'setup/setuputils.class.inc.php');
|
||||
|
||||
$aParams = [
|
||||
"exec_module" => "combodo-data-feature-removal",
|
||||
"exec_page" => "index.php",
|
||||
'exec_env' => 'production',
|
||||
];
|
||||
|
||||
new ContextTag(ContextTag::TAG_SETUP);
|
||||
$sToken = SetupUtils::CreateSetupToken();
|
||||
|
||||
@@ -34,24 +28,45 @@ function GetLastestInstallFile(): ?string
|
||||
return $sLastFilePath;
|
||||
}
|
||||
|
||||
$aRemovedExtensions = [
|
||||
'itop-container-mgmt' => 'Containerization',
|
||||
];
|
||||
|
||||
$sPath = GetLastestInstallFile();
|
||||
if (is_null($sPath)) {
|
||||
throw new Exception("$sPath no installation XM. Launch a setup....");
|
||||
throw new Exception("$sPath no installation XML. Launch a setup....");
|
||||
}
|
||||
$aParams = new XMLParameters($sPath);
|
||||
$aSelectedModules = array_filter($aParams->Get('selected_modules', []), static function ($element) {
|
||||
global $aRemovedExtensions;
|
||||
return ! array_key_exists($element, $aRemovedExtensions);
|
||||
});
|
||||
$aSelectedModules = $aParams->Get('selected_modules', []);
|
||||
$aSelectedExtensions = $aParams->Get('selected_extensions', []);
|
||||
|
||||
$aSelectedExtensions = array_filter($aParams->Get('selected_extensions', []), static function ($element) {
|
||||
global $aRemovedExtensions;
|
||||
return ! array_key_exists($element, $aRemovedExtensions);
|
||||
});
|
||||
$sAddedExtensions = utils::ReadParam('added_extensions', '');
|
||||
$aAddedExtensions = [];
|
||||
if (mb_strlen($sAddedExtensions) > 0) {
|
||||
$aAddedExtensions = explode(',', $sAddedExtensions);
|
||||
}
|
||||
$oExtensionMap = new iTopExtensionsMap();
|
||||
foreach ($aAddedExtensions as $sExtensionCode) {
|
||||
if (mb_strlen($sExtensionCode) <= 0) {
|
||||
continue;
|
||||
}
|
||||
$oExtension = $oExtensionMap->GetFromExtensionCode($sExtensionCode);
|
||||
$aSelectedExtensions[] = $oExtension->sCode;
|
||||
foreach ($oExtension->aModules as $sModuleCode) {
|
||||
if (!in_array($sModuleCode, $aSelectedModules)) {
|
||||
$aSelectedModules[] = $sModuleCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sRemovedExtensions = utils::ReadParam('removed_modules', '',false, 'raw');
|
||||
$aRemovedExtensionsAndModules = [];
|
||||
if (mb_strlen($sRemovedExtensions) > 0) {
|
||||
$aRemovedExtensionsAndModules = explode(',', $sRemovedExtensions);
|
||||
}
|
||||
|
||||
$aSelectedModules = array_filter($aSelectedModules, fn($element) => !in_array($element, $aRemovedExtensionsAndModules));
|
||||
$aSelectedExtensions = array_filter($aSelectedExtensions, fn($element) => !in_array($element, $aRemovedExtensionsAndModules));
|
||||
$aRemovedExtensionsAndModules = array_filter($aRemovedExtensionsAndModules, fn($element) => !is_null($oExtensionMap->GetFromExtensionCode($element)));
|
||||
|
||||
$aRemovedExtensions = array_combine($aRemovedExtensionsAndModules, $aRemovedExtensionsAndModules);
|
||||
$aAddedExtensions = array_combine($aAddedExtensions, $aAddedExtensions);
|
||||
|
||||
$aPostParams = [
|
||||
"auth_user" => 'admin',
|
||||
@@ -62,8 +77,9 @@ $aPostParams = [
|
||||
'selected_modules' => utils::HtmlEntities(json_encode($aSelectedModules)),
|
||||
'selected_extensions' => utils::HtmlEntities(json_encode($aSelectedExtensions)),
|
||||
'removed_extensions' => utils::HtmlEntities(json_encode($aRemovedExtensions)),
|
||||
'force-uninstall' => "on",
|
||||
'use_symbolic_links' => "",
|
||||
'added_extensions' => utils::HtmlEntities(json_encode($aAddedExtensions)),
|
||||
'force-uninstall' => 'on',
|
||||
'use_symbolic_links' => '',
|
||||
];
|
||||
|
||||
$sHiddenPostedInput = "";
|
||||
|
||||
Reference in New Issue
Block a user