/** * @param array $actionlist */ function dispatch($actionlist) { require_once CLASSES . 'VoodooSetup.php'; if (!count($actionlist)) { // Dont do anything return $this->login(); } $args = array('prepath' => PATH_TO_DOCROOT); $showCredentials = (bool) $this->conf['setup']['insecure_sql_execution']; switch ($actionlist[0]) { // The first admin to be created is the God Admin case 'CreateAdmin': return $this->createAdmin(); break; case 'Login': return $this->login(); break; case 'conf': if (!$this->hasRights($_SESSION['access'], 'conf', 'view')) { return VoodooPrivileges::displayError('Permission Denied'); } $use_conf = ''; if (isset($_REQUEST['conf'])) { $use_conf = $_REQUEST['conf']; } $template =& VoodooTemplate::getInstance(); $template->setDir(ADMIN_TEMPLATES); $conf = VoodooIni::load('voodoo'); $vars = array('prepath' => PATH_TO_DOCROOT, 'controllers' => array()); foreach ($conf['controllers'] as $controller => $enabled) { $enabled && ($vars['controllers'][] = array('name' => $controller, 'selected' => $use_conf == $controller ? ' selected="selected" ' : '')); } if ($conf['controllers'][$use_conf]) { $vars['conf'] = $use_conf; $vars['configuration'] = VoodooIni::getContent($use_conf); if ($this->hasRights($_SESSION['access'], 'conf', 'modify')) { $vars['buttons'] = '<input type="submit" name="save" value="Save Configuration" />'; } } return array('Configuration files', $template->parse('conf.modify', $vars)); break; case 'Init': $complete = false; $cnames = array(); $controllers = $this->controller->voodooConf['controllers']; foreach ($controllers as $controller => $enabled) { $enabled && ($cnames[] = ucfirst($controller)); } if (!$showCredentials || !isset($_POST['dbcredentials'])) { $args['action'] = 'Init'; $template =& VoodooTemplate::getInstance(); $template->setDir(ADMIN_TEMPLATES); $output = ($showCredentials ? $template->parse('credentials', $args) : '') . '<strong>SQL Output</strong><pre class="MonospaceFormat">'; if (!$this->controller->voodooConf['engine']['site.setup']) { $obj = new VoodooSetup(false, $this->controller->conf); $obj->setup(); $output .= $obj->displaySQL(); } foreach ($cnames as $cname) { $output .= $this->controllerSetup($cname); } return array('SQL Output For VOODOO', $output . '</pre>'); } if (!$this->controller->voodooConf['engine']['site.setup']) { $obj = new VoodooSetup($_POST['dbcredentials'], $this->controller->conf); $complete || ($complete = $obj->setup()); } foreach ($cnames as $cname) { $this->controllerSetup($cname, $_POST['dbcredentials']); } header('Location: ' . PATH_TO_DOCROOT . ($complete ? '/' : '/setup/CreateAdmin')); exit; break; case 'Controller': if (count($actionlist) != 2) { exit('Incorrect Setup Of Controller'); } $cname = ucfirst(strtolower($actionlist[1])); if (!$showCredentials || !isset($_POST['dbcredentials'])) { $args['action'] = 'Init'; $template =& VoodooTemplate::getInstance(); $template->setDir(ADMIN_TEMPLATES); $output = ($showCredentials ? $template->parse('credentials', $args) : '') . '<strong>SQL Output</strong><pre class="MonospaceFormat">'; return array('SQL Output For ' . $cname, $output . $this->controllerSetup($cname) . '</pre>'); } $this->controllerSetup($cname, $_POST['dbcredentials']); header('Location: ' . PATH_TO_DOCROOT . '/'); exit; break; } }