Selaa lähdekoodia

Code refactoring : fix of #876 implemented in 2.0.3 as [r3161], moved to a place where it will fix other implementations of the setup

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4252 a333f486-631f-4898-b8df-5754b55c2be0
romainq 9 vuotta sitten
vanhempi
commit
c65496ee4c
2 muutettua tiedostoa jossa 10 lisäystä ja 9 poistoa
  1. 2 9
      setup/applicationinstaller.class.inc.php
  2. 8 0
      setup/runtimeenv.class.inc.php

+ 2 - 9
setup/applicationinstaller.class.inc.php

@@ -1000,10 +1000,6 @@ class ApplicationInstaller
 		}
 		$oConfig->Set('source_dir', $sSourceDir);
 
-		// Have it work fine even if the DB has been set in read-only mode for the users
-		$iPrevAccessMode = $oConfig->Get('access_mode');
-		$oConfig->Set('access_mode', ACCESS_FULL);
-
 		// Record which modules are installed...
 		$oProductionEnv = new RunTimeEnvironment($sTargetEnvironment);
 		$oProductionEnv->InitDataModel($oConfig, true);  // load data model and connect to the database
@@ -1011,11 +1007,8 @@ class ApplicationInstaller
 		if (!$oProductionEnv->RecordInstallation($oConfig, $sDataModelVersion, $aSelectedModules, $sModulesDir))
 		{
 			throw new Exception("Failed to record the installation information");
-		}		
-		
-		// Restore the previous access mode
-		$oConfig->Set('access_mode', $iPrevAccessMode);
-		
+		}
+
 		// Make sure the root configuration directory exists
 		if (!file_exists(APPCONF))
 		{

+ 8 - 0
setup/runtimeenv.class.inc.php

@@ -596,6 +596,10 @@ class RunTimeEnvironment
 	
 	public function RecordInstallation(Config $oConfig, $sDataModelVersion, $aSelectedModules, $sModulesRelativePath, $sShortComment = null)
 	{
+		// Have it work fine even if the DB has been set in read-only mode for the users
+		$iPrevAccessMode = $oConfig->Get('access_mode');
+		$oConfig->Set('access_mode', ACCESS_FULL);
+
 		if ($sShortComment === null)
 		{
 			$sShortComment = 'Done by the setup program';
@@ -665,6 +669,10 @@ class RunTimeEnvironment
 			$oInstallRec->Set('installed', $iInstallationTime);
 			$oInstallRec->DBInsertNoReload();
 		}
+
+		// Restore the previous access mode
+		$oConfig->Set('access_mode', $iPrevAccessMode);
+
 		// Database is created, installation has been tracked into it
 		return true;	
 	}