diff --git a/application/controllers/InstallerController.php b/application/controllers/InstallerController.php index 587497e7908..f1796611dd2 100644 --- a/application/controllers/InstallerController.php +++ b/application/controllers/InstallerController.php @@ -11,17 +11,16 @@ * See COPYRIGHT.php for copyright notices and details. * * @author Shubham Sachdeva -* @author Gautam Gupta */ /** * Installer * -* FIXME output code belongs into view +* @todo Output code belongs into view +* @todo Make it write the config.php file * * @package LimeSurvey * @author Shubham Sachdeva -* @author Gautam Gupta * @copyright 2011 * @version $Id$ * @access public @@ -590,15 +589,6 @@ private function stepOptionalConfiguration() Yii::app()->session['deletedirectories'] = true; - //DELETE SAMPLE INSTALLER FILE. If we can't, notify user of the same. - $installer_file = Yii::app()->getConfig('rootdir').'/tmp/sample_installer_file.txt'; - if (is_writable($installer_file)) - { - rename($installer_file, $installer_file.'.removed'); - } else { - $aData['error'] = true; - } - $aData['title'] = $clang->gT("Success!"); $aData['descp'] = $clang->gT("LimeSurvey has been installed successfully."); $aData['classesForStep'] = array('off','off','off','off','off','off'); @@ -762,12 +752,8 @@ function check_DirectoryWriteable($directory, &$data, $base, $keyError) // ** file and directory permissions checking ** - // config file - if (!check_FileWriteable(Yii::app()->getConfig('rootdir').'/application/config/config.php', $data, 'config', 'derror') ) - $bProceed = false; - - // tmp directory check - if (!check_DirectoryWriteable(Yii::app()->getConfig('rootdir').'/tmp/', $data, 'tmpdir', 'terror') ) + // config directory + if (!check_DirectoryWriteable(Yii::app()->getConfig('rootdir').'/application/config', $data, 'config', 'derror') ) $bProceed = false; // templates directory check @@ -962,13 +948,14 @@ function _writeConfigFile() . "/* End of file config.php */" . "\n" . "/* Location: ./application/config/config.php */"; - if (is_writable(APPPATH . 'config/config.php')) { + if (is_writable(APPPATH . 'config')) { write_file(APPPATH . 'config/config.php', $dbdata); Yii::app()->session['configFileWritten'] = true; } else { header('refresh:5;url='.$this->createUrl("installer/welcome")); - echo "".$clang->gT("Configuration file directory is not writable")."
"; + echo "".$clang->gT("Configuration directory is not writable")."
"; printf($clang->gT('You will be redirected in about 5 secs. If not, click here.' ,'unescaped'), $this->createUrl('installer/welcome')); + exit; } } } diff --git a/application/core/LSYii_Controller.php b/application/core/LSYii_Controller.php index 61f60e279b6..f76573b4736 100644 --- a/application/core/LSYii_Controller.php +++ b/application/core/LSYii_Controller.php @@ -49,7 +49,7 @@ public function __construct($id, $module = null) protected function _checkInstallation() { $file_name = Yii::app()->getConfig('rootdir').'/application/config/config.php'; - if (!file_exists($file_name)) + if (!file_exists($file_name) && empty(Yii::app()->session['configFileWritten'])) { $this->redirect($this->createUrl('/installer')); }