diff options
author | Cash Costello <cash.costello@gmail.com> | 2011-10-21 21:09:27 -0400 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2011-10-21 21:09:27 -0400 |
commit | e8c47ee8a098bd4297cbacb6b96ad1768a769628 (patch) | |
tree | ef4f304a956acadb3839f383430cd9bbb6abe6f2 /install | |
parent | 7ef727bfa242015d3ca7ab22671ec020006f0b4e (diff) | |
download | elgg-e8c47ee8a098bd4297cbacb6b96ad1768a769628.tar.gz elgg-e8c47ee8a098bd4297cbacb6b96ad1768a769628.tar.bz2 |
Fixes #3994 cleaned up session handling for the installer
Diffstat (limited to 'install')
-rw-r--r-- | install/ElggInstaller.php | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/install/ElggInstaller.php b/install/ElggInstaller.php index c07839065..59ac44dc6 100644 --- a/install/ElggInstaller.php +++ b/install/ElggInstaller.php @@ -562,7 +562,12 @@ class ElggInstaller { * @return string */ protected function getNextStep($currentStep) { - return $this->steps[1 + array_search($currentStep, $this->steps)]; + $index = 1 + array_search($currentStep, $this->steps); + if (isset($this->steps[$index])) { + return $this->steps[$index]; + } else { + return null; + } } /** @@ -735,20 +740,18 @@ class ElggInstaller { protected function finishBootstraping($step) { $dbIndex = array_search('database', $this->getSteps()); - $settingsIndex = array_search('settings', $this->getSteps()); + $adminIndex = array_search('admin', $this->getSteps()); + $completeIndex = array_search('complete', $this->getSteps()); $stepIndex = array_search($step, $this->getSteps()); - if ($stepIndex <= $settingsIndex) { - // install has its own session handling before the db created and set up - session_name('Elgg'); + // To log in the user, we need to use the Elgg core session handling. + // Otherwise, use default php session handling + $useElggSession = ($stepIndex == $adminIndex && $this->isAction) || + $stepIndex == $completeIndex; + if (!$useElggSession) { + session_name('Elgg_install'); session_start(); elgg_unregister_event_handler('boot', 'system', 'session_init'); - } else if (!$this->isAction && $stepIndex == ($settingsIndex + 1)) { - // now using Elgg session handling so need to pass forward the system messages - // this is called on the GET of the next step - session_name('Elgg'); - session_start(); - $messages = $_SESSION['msg']; } if ($stepIndex > $dbIndex) { @@ -789,11 +792,6 @@ class ElggInstaller { elgg_trigger_event('boot', 'system'); elgg_trigger_event('init', 'system'); - - // @hack finish the process of pushing system messages into new session - if (!$this->isAction && $stepIndex == ($settingsIndex + 1)) { - $_SESSION['msg'] = $messages; - } } } @@ -811,6 +809,8 @@ class ElggInstaller { $CONFIG->wwwroot = $this->getBaseUrl(); $CONFIG->url = $CONFIG->wwwroot; $CONFIG->path = dirname(dirname(__FILE__)) . '/'; + $CONFIG->lastcache = 0; + $CONFIG->context = array(); } /** @@ -1398,6 +1398,7 @@ class ElggInstaller { set_config('default_access', $submissionVars['siteaccess'], $site->getGUID()); set_config('allow_registration', TRUE, $site->getGUID()); set_config('walled_garden', FALSE, $site->getGUID()); + set_config('allow_user_default_access', '', $site->getGUID()); $this->enablePlugins(); |