private function execCreateAdmin() { $input = Input::only(['admin_username', 'admin_email', 'admin_password']); $adminUser = new User(); if (strlen(trim(implode('', $input)))) { $adminUser->username = $input['admin_username']; $adminUser->email = $input['admin_email']; $adminUser->password = $input['admin_password']; $adminUser->is_admin = 1; $adminUser->is_active = 1; $adminUser->save(); Config::set('microweber.has_admin', 1); Config::save(); Auth::login($adminUser); } }
function post_update($version = false) { $this->_log_msg('Applying post update actions'); $system_refresh = new \Microweber\Install\DbInstaller(); $system_refresh->createSchema(); //$system_refresh->run(); if (!ini_get('safe_mode')) { if (!strstr(INI_SYSTEM_CHECK_DISABLED, 'ini_set')) { ini_set("set_time_limit", 0); } if (!strstr(INI_SYSTEM_CHECK_DISABLED, 'set_time_limit')) { set_time_limit(0); } } mw()->cache_manager->delete('db'); mw()->cache_manager->delete('update/global'); mw()->cache_manager->delete('elements/global'); mw()->cache_manager->delete('templates'); mw()->cache_manager->delete('modules/global'); mw()->cache_manager->clear(); scan_for_modules(); scan_for_elements(); mw()->layouts_manager->scan(); event_trigger('mw_db_init_default'); event_trigger('mw_db_init_modules'); event_trigger('mw_db_init'); if ($version != false) { Config::set('microweber.version', $version); Config::save('microweber'); } }
public function save() { return Config::save(); }
public function index($input = null) { if (!is_array($input) || empty($input)) { $input = Input::all(); } $allowed_configs = array('database', 'microweber'); $is_installed = mw_is_installed(); if ($is_installed) { return 'Microweber is already installed!'; } $view = MW_PATH . 'Views/install.php'; $connection = Config::get('database.connections'); $this->install_log("Preparing to install"); if (isset($input['make_install'])) { if (!isset($input['db_pass'])) { $input['db_pass'] = ''; } if (!isset($input['table_prefix'])) { $input['table_prefix'] = ''; } $errors = array(); if (!isset($input['db_host'])) { $errors[] = 'Parameter "db_host" is required'; } else { $input['db_host'] = trim($input['db_host']); } if (!isset($input['db_name'])) { $errors[] = 'Parameter "db_name" is required'; } else { $input['db_name'] = trim($input['db_name']); } if (!isset($input['db_user'])) { $errors[] = 'Parameter "db_user" is required'; } if (!isset($input['admin_email'])) { $errors[] = 'Parameter "admin_email" is required'; } if (!isset($input['admin_password'])) { $errors[] = 'Parameter "admin_password" is required'; } if (!isset($input['admin_username'])) { $errors[] = 'Parameter "admin_username" is required'; } if (!empty($errors)) { return implode("\n", $errors); } if (isset($input['db_driver'])) { $dbDriver = $input['db_driver']; } else { $dbDriver = 'mysql'; } Config::set("database.default", $dbDriver); if ($dbDriver == 'sqlite') { if (isset($input['db_name_sqlite'])) { $input['db_name'] = $input['db_name_sqlite']; } Config::set("database.connections.{$dbDriver}.database", $input['db_name']); if (!file_exists($input['db_name'])) { touch($input['db_name']); } } Config::set("database.connections.{$dbDriver}.host", $input['db_host']); Config::set("database.connections.{$dbDriver}.username", $input['db_user']); Config::set("database.connections.{$dbDriver}.password", $input['db_pass']); Config::set("database.connections.{$dbDriver}.database", $input['db_name']); Config::set("database.connections.{$dbDriver}.prefix", $input['table_prefix']); if (isset($input['default_template']) and $input['default_template'] != false) { Config::set('microweber.install_default_template', $input['default_template']); } if (isset($input['with_default_content']) and $input['with_default_content'] != false) { Config::set('microweber.install_default_template_content', 1); } if (Config::get('app.key') == 'YourSecretKey!!!') { if (!$this->app->runningInConsole()) { $_SERVER['argv'] = array(); } Artisan::call('key:generate'); } $this->install_log("Saving config"); Config::save($allowed_configs); Cache::flush(); $install_finished = false; try { DB::connection($dbDriver)->getDatabaseName(); } catch (\PDOException $e) { return 'Error: ' . $e->getMessage() . "\n"; } catch (\Exception $e) { return 'Error: ' . $e->getMessage() . "\n"; } if (function_exists('set_time_limit')) { @set_time_limit(0); } $this->install_log("Setting up database"); $installer = new Install\DbInstaller(); $installer->run(); $installer = new Install\WebserverInstaller(); $installer->run(); $this->install_log("Setting up template"); $installer = new Install\TemplateInstaller(); $installer->run(); $this->install_log("Setting up default options"); $installer = new Install\DefaultOptionsInstaller(); $installer->run(); Config::set('microweber.is_installed', 1); if (isset($input['admin_password']) && strlen($input['admin_password'])) { $this->install_log("Adding admin user"); $adminUser = new \User(); $adminUser->username = $input['admin_username']; $adminUser->email = $input['admin_email']; $adminUser->password = $input['admin_password']; $adminUser->is_admin = 1; $adminUser->is_active = 1; $adminUser->save(); Config::set('microweber.has_admin', 1); } $this->install_log("Saving ready config"); Config::save($allowed_configs); $this->install_log("done"); return 'done'; } $layout = new View($view); $defaultDbEngine = Config::get('database.default'); if (extension_loaded('pdo_sqlite')) { // $defaultDbEngine = 'sqlite'; } $dbEngines = Config::get('database.connections'); foreach ($dbEngines as $driver => $v) { if (!extension_loaded("pdo_{$driver}")) { unset($dbEngines[$driver]); } } $viewData = ['config' => $dbEngines[$defaultDbEngine], 'dbDefaultEngine' => $defaultDbEngine, 'dbEngines' => array_keys($dbEngines), 'dbEngineNames' => ['mysql' => 'MySQL', 'sqlite' => 'SQLite', 'sqlsrv' => 'Microsoft SQL Server', 'pgsql' => 'PostgreSQL']]; $domain = false; if (isset($_SERVER['HTTP_HOST'])) { $domain = $_SERVER['HTTP_HOST']; $domain = str_replace('www.', '', $domain); $domain = str_replace('.', '_', $domain); $domain = str_replace('-', '_', $domain); $domain = substr($domain, 0, 10); } if (!$viewData['config']['prefix'] and $domain) { $viewData['config']['prefix'] = $domain . '_'; } if (extension_loaded('pdo_sqlite') and $domain) { $sqlite_path = normalize_path(storage_path() . DS . $domain . '.sqlite', false); $viewData['config']['db_name_sqlite'] = $sqlite_path; } $layout->set($viewData); $is_installed = mw_is_installed(); if ($is_installed) { App::abort(403, 'Unauthorized action. Microweber is already installed.'); } $layout->assign('done', $is_installed); $layout = $layout->__toString(); return $layout; }