diff options
author | Bart Visscher <bartv@thisnet.nl> | 2012-11-12 13:23:31 -0800 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2012-11-12 13:23:31 -0800 |
commit | 7b53c9d3f07bf630d38a7a9c92ee44a3fb9b0f21 (patch) | |
tree | cf02c2d80277757189fc3400a44484dc7f97ba29 | |
parent | 910a25adbd2ee525b228c8b0d0f73d867fd237d6 (diff) | |
parent | 6d097529405a7e7791b4daac1909bafd38445c5c (diff) | |
download | nextcloud-server-7b53c9d3f07bf630d38a7a9c92ee44a3fb9b0f21.tar.gz nextcloud-server-7b53c9d3f07bf630d38a7a9c92ee44a3fb9b0f21.zip |
Merge pull request #157 from owncloud/setup
Make lib/setup.php usable outside of install setup
-rw-r--r-- | core/setup.php | 53 | ||||
-rw-r--r-- | lib/base.php | 16 | ||||
-rw-r--r-- | lib/setup.php | 44 |
3 files changed, 59 insertions, 54 deletions
diff --git a/core/setup.php b/core/setup.php new file mode 100644 index 00000000000..1c03e3397af --- /dev/null +++ b/core/setup.php @@ -0,0 +1,53 @@ +<?php + +// Check for autosetup: +$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); +} + +OC_Util::addScript('setup'); + +$hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3')); +$hasMySQL = is_callable('mysql_connect'); +$hasPostgreSQL = is_callable('pg_connect'); +$hasOracle = is_callable('oci_connect'); +$datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data'); + +// Test if .htaccess is working +$content = "deny from all"; +file_put_contents(OC::$SERVERROOT.'/data/.htaccess', $content); + +$opts = array( + 'hasSQLite' => $hasSQLite, + 'hasMySQL' => $hasMySQL, + 'hasPostgreSQL' => $hasPostgreSQL, + 'hasOracle' => $hasOracle, + 'directory' => $datadir, + 'secureRNG' => OC_Util::secureRNG_available(), + 'htaccessWorking' => OC_Util::ishtaccessworking(), + 'errors' => array(), +); + +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) { + //OC_Template::printGuestPage("", "error", array("errors" => $errors)); + $options = array_merge($_POST, $opts, $errors); + OC_Template::printGuestPage("", "installation", $options); + } + else { + header("Location: ".OC::$WEBROOT.'/'); + exit(); + } +} +else { + OC_Template::printGuestPage("", "installation", $opts); +} diff --git a/lib/base.php b/lib/base.php index 50617081b1f..c97700b3dbf 100644 --- a/lib/base.php +++ b/lib/base.php @@ -227,9 +227,7 @@ class OC{ if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) { if(!OC_Util::ishtaccessworking()) { if(!file_exists(OC::$SERVERROOT.'/data/.htaccess')) { - $content = "deny from all\n"; - $content.= "IndexIgnore *"; - file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content); + OC_Setup::protectDataDirectory(); } } } @@ -481,17 +479,7 @@ class OC{ */ public static function handleRequest() { if (!OC_Config::getValue('installed', false)) { - // Check for autosetup: - $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); - } - OC_Util::addScript('setup'); - require_once 'setup.php'; + require_once 'core/setup.php'; exit(); } // Handle WebDAV diff --git a/lib/setup.php b/lib/setup.php index 013ae2f6efc..264cd55795e 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -1,45 +1,5 @@ <?php -$hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3')); -$hasMySQL = is_callable('mysql_connect'); -$hasPostgreSQL = is_callable('pg_connect'); -$hasOracle = is_callable('oci_connect'); -$datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data'); - -// Test if .htaccess is working -$content = "deny from all"; -file_put_contents(OC::$SERVERROOT.'/data/.htaccess', $content); - -$opts = array( - 'hasSQLite' => $hasSQLite, - 'hasMySQL' => $hasMySQL, - 'hasPostgreSQL' => $hasPostgreSQL, - 'hasOracle' => $hasOracle, - 'directory' => $datadir, - 'secureRNG' => OC_Util::secureRNG_available(), - 'htaccessWorking' => OC_Util::ishtaccessworking(), - 'errors' => array(), -); - -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) { - //OC_Template::printGuestPage("", "error", array("errors" => $errors)); - $options = array_merge($_POST, $opts, $errors); - OC_Template::printGuestPage("", "installation", $options); - } - else { - header("Location: ".OC::$WEBROOT.'/'); - exit(); - } -} -else { - OC_Template::printGuestPage("", "installation", $opts); -} - class OC_Setup { public static function install($options) { $error = array(); @@ -607,6 +567,10 @@ class OC_Setup { $content.= "Options -Indexes\n"; @file_put_contents(OC::$SERVERROOT.'/.htaccess', $content); //supress errors in case we don't have permissions for it + self::protectDataDirectory(); + } + + public static function protectDataDirectory() { $content = "deny from all\n"; $content.= "IndexIgnore *"; file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content); |