mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-14 06:08:43 +02:00
Compare commits
2 Commits
feature/un
...
issue/9503
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7fce0cc7af | ||
|
|
8172910c8b |
@@ -2,9 +2,11 @@
|
||||
|
||||
namespace Combodo\iTop\Setup\ModuleDependency;
|
||||
|
||||
require_once(APPROOT.'/setup/runtimeenv.class.inc.php');
|
||||
|
||||
use Combodo\iTop\PhpParser\Evaluation\PhpExpressionEvaluator;
|
||||
use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReader;
|
||||
use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReaderException;
|
||||
use RunTimeEnvironment;
|
||||
|
||||
/**
|
||||
* Class that handles a module dependency
|
||||
@@ -62,7 +64,7 @@ class DependencyExpression
|
||||
public static function GetPhpExpressionEvaluator(): PhpExpressionEvaluator
|
||||
{
|
||||
if (!isset(self::$oPhpExpressionEvaluator)) {
|
||||
self::$oPhpExpressionEvaluator = new PhpExpressionEvaluator([], ModuleFileReader::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
self::$oPhpExpressionEvaluator = new PhpExpressionEvaluator([], RunTimeEnvironment::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
}
|
||||
|
||||
return self::$oPhpExpressionEvaluator;
|
||||
|
||||
@@ -42,10 +42,6 @@ class ModuleFileReader
|
||||
"utils::GetItopVersionWikiSyntax",
|
||||
];
|
||||
|
||||
public const STATIC_CALL_AUTOSELECT_WHITELIST = [
|
||||
"SetupInfo::ModuleIsSelected",
|
||||
];
|
||||
|
||||
protected function __construct()
|
||||
{
|
||||
$this->oPhpExpressionEvaluator = new PhpExpressionEvaluator(static::FUNC_CALL_WHITELIST, static::STATIC_CALLWHITELIST);
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
//require_once(APPROOT.'setup/setuppage.class.inc.php');
|
||||
|
||||
/**
|
||||
* Class ModuleInstaller
|
||||
* Defines the API to implement module specific actions during the setup
|
||||
|
||||
@@ -46,6 +46,10 @@ define('DATAMODEL_MODULE', 'datamodel'); // Convention to store the version of t
|
||||
|
||||
class RunTimeEnvironment
|
||||
{
|
||||
public const STATIC_CALL_AUTOSELECT_WHITELIST = [
|
||||
"SetupInfo::ModuleIsSelected",
|
||||
];
|
||||
|
||||
private static bool $bMetamodelStarted = false;
|
||||
|
||||
/**
|
||||
@@ -509,7 +513,7 @@ class RunTimeEnvironment
|
||||
}
|
||||
}
|
||||
|
||||
$oPhpExpressionEvaluator = new PhpExpressionEvaluator([], ModuleFileReader::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
$oPhpExpressionEvaluator = new PhpExpressionEvaluator([], RunTimeEnvironment::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
|
||||
// Now process the 'AutoSelect' modules
|
||||
do {
|
||||
|
||||
@@ -54,10 +54,9 @@ class DataAuditSequencer extends StepSequencer
|
||||
$aSelectedModules = $this->oParams->Get('selected_modules', []);
|
||||
$sSourceDir = $this->oParams->Get('source_dir', 'datamodels/latest');
|
||||
$sExtensionDir = $this->oParams->Get('extensions_dir', 'extensions');
|
||||
$aMiscOptions = $this->oParams->Get('options', []);
|
||||
$aRemovedExtensionCodes = $this->oParams->Get('removed_extensions', []);
|
||||
$bUseSymbolicLinks = $aMiscOptions['symlinks'] ?? false;
|
||||
$sMessage = $bUseSymbolicLinks ? '' : 'Using symbolic links instead of copying data model files (for developers only!)';
|
||||
$bUseSymbolicLinks = $this->oParams->Get('use-symbolic-links', null) === 'on';
|
||||
$sMessage = $bUseSymbolicLinks ? 'Using symbolic links instead of copying data model files (for developers only!)' : '';
|
||||
$this->oRunTimeEnvironment->DoCompile(
|
||||
$aRemovedExtensionCodes,
|
||||
$aSelectedModules,
|
||||
|
||||
@@ -846,14 +846,19 @@ class SetupUtils
|
||||
// Skip
|
||||
continue;
|
||||
}
|
||||
if (is_dir($sSource.'/'.$sFile)) {
|
||||
$sSourcePath = $sSource.'/'.$sFile;
|
||||
$sDestPath = $sDest.'/'.$sFile;
|
||||
if (is_dir($sSourcePath)) {
|
||||
// Recurse
|
||||
self::copydir($sSource.'/'.$sFile, $sDest.'/'.$sFile, $bUseSymbolicLinks);
|
||||
self::copydir($sSourcePath, $sDestPath, $bUseSymbolicLinks);
|
||||
} elseif (is_link($sSourcePath)) {
|
||||
$sLinkPath = readlink($sSourcePath);
|
||||
symlink($sLinkPath, $sDestPath);
|
||||
} else {
|
||||
if ($bUseSymbolicLinks) {
|
||||
symlink($sSource.'/'.$sFile, $sDest.'/'.$sFile);
|
||||
symlink($sSourcePath, $sDestPath);
|
||||
} else {
|
||||
copy($sSource.'/'.$sFile, $sDest.'/'.$sFile);
|
||||
copy($sSourcePath, $sDestPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -862,6 +867,9 @@ class SetupUtils
|
||||
} elseif (is_file($sSource)) {
|
||||
if ($bUseSymbolicLinks) {
|
||||
return symlink($sSource, $sDest);
|
||||
} elseif (is_link($sSource)) {
|
||||
$sLinkPath = readlink($sSource);
|
||||
return symlink($sLinkPath, $sDest);
|
||||
} else {
|
||||
return copy($sSource, $sDest);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Combodo\iTop\PhpParser\Evaluation\PhpExpressionEvaluator;
|
||||
use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReader;
|
||||
use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReaderException;
|
||||
|
||||
require_once(APPROOT.'/application/utils.inc.php');
|
||||
@@ -287,7 +286,7 @@ class InstallationFileService
|
||||
|
||||
public function ProcessAutoSelectModules(): void
|
||||
{
|
||||
$oPhpExpressionEvaluator = new PhpExpressionEvaluator([], ModuleFileReader::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
$oPhpExpressionEvaluator = new PhpExpressionEvaluator([], RunTimeEnvironment::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
|
||||
foreach ($this->GetAutoSelectModules() as $sModuleId => $aModule) {
|
||||
try {
|
||||
|
||||
@@ -41,6 +41,7 @@ class WizStepInstallMiscParams extends AbstractWizStepMiscParams
|
||||
$this->oWizard->SaveParameter('application_url', '');
|
||||
$this->oWizard->SaveParameter('graphviz_path', '');
|
||||
$this->oWizard->SaveParameter('sample_data', 'yes');
|
||||
$this->oWizard->SaveParameter('use-symbolic-links', false);
|
||||
return new WizardState(WizStepModulesChoice::class, 'start_install');
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
use Combodo\iTop\Application\WebPage\WebPage;
|
||||
use Combodo\iTop\PhpParser\Evaluation\PhpExpressionEvaluator;
|
||||
use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReader;
|
||||
use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReaderException;
|
||||
|
||||
/**
|
||||
@@ -467,7 +466,7 @@ EOF
|
||||
private function GetPhpExpressionEvaluator(): PhpExpressionEvaluator
|
||||
{
|
||||
if (!isset($this->oPhpExpressionEvaluator)) {
|
||||
$this->oPhpExpressionEvaluator = new PhpExpressionEvaluator([], ModuleFileReader::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
$this->oPhpExpressionEvaluator = new PhpExpressionEvaluator([], RunTimeEnvironment::STATIC_CALL_AUTOSELECT_WHITELIST);
|
||||
}
|
||||
|
||||
return $this->oPhpExpressionEvaluator;
|
||||
|
||||
@@ -39,7 +39,7 @@ class WizStepUpgradeMiscParams extends AbstractWizStepMiscParams
|
||||
{
|
||||
$this->oWizard->SaveParameter('application_url', '');
|
||||
$this->oWizard->SaveParameter('graphviz_path', '');
|
||||
$this->oWizard->SaveParameter('use-symbolic-links', MFCompiler::UseSymbolicLinks());
|
||||
$this->oWizard->SaveParameter('use-symbolic-links', false);
|
||||
$this->oWizard->SaveParameter('force-uninstall', false);
|
||||
return new WizardState(WizStepModulesChoice::class, 'start_upgrade');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user