From: Bart Visscher Date: Fri, 31 Jan 2014 15:43:12 +0000 (+0100) Subject: Merge branch 'master' into setup X-Git-Tag: v7.0.0alpha2~863^2~4 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=bca725dc32e159d756f023d428816b8f9821b732;p=nextcloud-server.git Merge branch 'master' into setup Conflicts: core/setup.php --- bca725dc32e159d756f023d428816b8f9821b732 diff --cc core/setup/controller.php index 679efee81bf,00000000000..0c87103138b mode 100644,000000..100644 --- a/core/setup/controller.php +++ b/core/setup/controller.php @@@ -1,96 -1,0 +1,111 @@@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Setup; + +class Controller { + public function run($post) { + // Check for autosetup: + $post = $this->loadAutoConfig($post); + $opts = $this->getSystemInfo(); + + if(isset($post['install']) AND $post['install']=='true') { + // We have to launch the installation process : + $e = \OC_Setup::install($post); + $errors = array('errors' => $e); + + if(count($e) > 0) { + $options = array_merge($post, $opts, $errors); + $this->display($options); + } + else { + $this->finishSetup(); + } + } + else { + $this->display($opts); + } + } + + public function display($post) { ++ ++ \OC_Util::addScript( '3rdparty', 'strengthify/jquery.strengthify' ); ++ \OC_Util::addStyle( '3rdparty', 'strengthify/strengthify' ); + \OC_Util::addScript('setup'); + \OC_Template::printGuestPage('', 'installation', $post); + } + + public function finishSetup() { + header( 'Location: '.\OC_Helper::linkToRoute( 'post_setup_check' )); + exit(); + } + + public function loadAutoConfig($post) { ++ $dbIsSet = isset($post['dbtype']); ++ $directoryIsSet = isset($post['directory']); ++ $adminAccountIsSet = isset($post['adminlogin']); ++ + $autosetup_file = \OC::$SERVERROOT.'/config/autoconfig.php'; + if( file_exists( $autosetup_file )) { + \OC_Log::write('core', 'Autoconfig file found, setting up owncloud...', \OC_Log::INFO); + include $autosetup_file; - $post['install'] = 'true'; + $post = array_merge ($post, $AUTOCONFIG); - @unlink($autosetup_file); + } ++ ++ if ($dbIsSet AND $directoryIsSet AND $adminAccountIsSet) { ++ $post['install'] = 'true'; ++ if( file_exists( $autosetup_file )) { ++ unlink($autosetup_file); ++ } ++ } ++ $post['dbIsSet'] = $dbIsSet; ++ $post['directoryIsSet'] = $directoryIsSet; ++ + return $post; + } + + public function getSystemInfo() { + $hasSQLite = class_exists('SQLite3'); + $hasMySQL = is_callable('mysql_connect'); + $hasPostgreSQL = is_callable('pg_connect'); + $hasOracle = is_callable('oci_connect'); + $hasMSSQL = is_callable('sqlsrv_connect'); + $datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT.'/data'); + $vulnerableToNullByte = false; + if(@file_exists(__FILE__."\0Nullbyte")) { // Check if the used PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243) + $vulnerableToNullByte = true; + } + + $errors = array(); + + // Protect data directory here, so we can test if the protection is working + \OC_Setup::protectDataDirectory(); + try { + $htaccessWorking = \OC_Util::isHtAccessWorking(); + } catch (\OC\HintException $e) { + $errors[] = array( + 'error' => $e->getMessage(), + 'hint' => $e->getHint() + ); + $htaccessWorking = false; + } + + return array( + 'hasSQLite' => $hasSQLite, + 'hasMySQL' => $hasMySQL, + 'hasPostgreSQL' => $hasPostgreSQL, + 'hasOracle' => $hasOracle, + 'hasMSSQL' => $hasMSSQL, + 'directory' => $datadir, + 'secureRNG' => \OC_Util::secureRNGAvailable(), + 'htaccessWorking' => $htaccessWorking, + 'vulnerableToNullByte' => $vulnerableToNullByte, + 'errors' => $errors, + ); + } +}