summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2013-09-10 20:19:42 +0200
committerBart Visscher <bartv@thisnet.nl>2013-09-10 20:19:42 +0200
commit8ae612f6930235aa1768d3a5beeff65a3565d90a (patch)
tree79a308fd5f2eedea3ca8b07f35183a7335dfa289 /core
parent2cdde7a56af3841d058974f50081ad8da5bff43d (diff)
downloadnextcloud-server-8ae612f6930235aa1768d3a5beeff65a3565d90a.tar.gz
nextcloud-server-8ae612f6930235aa1768d3a5beeff65a3565d90a.zip
Move core setup code to controller class
Diffstat (limited to 'core')
-rw-r--r--core/setup.php59
-rw-r--r--core/setup/controller.php79
2 files changed, 79 insertions, 59 deletions
diff --git a/core/setup.php b/core/setup.php
deleted file mode 100644
index 4758c23b045..00000000000
--- a/core/setup.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?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 = 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;
-}
-
-// Protect data directory here, so we can test if the protection is working
-OC_Setup::protectDataDirectory();
-
-$opts = array(
- 'hasSQLite' => $hasSQLite,
- 'hasMySQL' => $hasMySQL,
- 'hasPostgreSQL' => $hasPostgreSQL,
- 'hasOracle' => $hasOracle,
- 'hasMSSQL' => $hasMSSQL,
- 'directory' => $datadir,
- 'secureRNG' => OC_Util::secureRNGAvailable(),
- 'htaccessWorking' => OC_Util::isHtAccessWorking(),
- 'vulnerableToNullByte' => $vulnerableToNullByte,
- '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_Helper::linkToRoute( 'post_setup_check' ));
- exit();
- }
-}
-else {
- OC_Template::printGuestPage("", "installation", $opts);
-}
diff --git a/core/setup/controller.php b/core/setup/controller.php
new file mode 100644
index 00000000000..54bfe14612a
--- /dev/null
+++ b/core/setup/controller.php
@@ -0,0 +1,79 @@
+<?php
+
+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('setup');
+ \OC_Template::printGuestPage('', 'installation', $post);
+ }
+
+ public function finishSetup() {
+ header( 'Location: '.\OC_Helper::linkToRoute( 'post_setup_check' ));
+ exit();
+ }
+
+ public function loadAutoConfig($post) {
+ $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);
+ }
+ 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;
+ }
+
+ // Protect data directory here, so we can test if the protection is working
+ \OC_Setup::protectDataDirectory();
+
+ return array(
+ 'hasSQLite' => $hasSQLite,
+ 'hasMySQL' => $hasMySQL,
+ 'hasPostgreSQL' => $hasPostgreSQL,
+ 'hasOracle' => $hasOracle,
+ 'hasMSSQL' => $hasMSSQL,
+ 'directory' => $datadir,
+ 'secureRNG' => \OC_Util::secureRNGAvailable(),
+ 'htaccessWorking' => \OC_Util::isHtAccessWorking(),
+ 'vulnerableToNullByte' => $vulnerableToNullByte,
+ 'errors' => array(),
+ );
+ }
+}