From 9156fb73fdd8385f891842a94eb414cb7fc5e35c Mon Sep 17 00:00:00 2001
From: Bart Visscher <bartv@thisnet.nl>
Date: Wed, 8 Aug 2012 21:08:20 +0200
Subject: [PATCH] Move handling request of index.php to OC class

---
 index.php    | 45 ++-------------------------------------------
 lib/base.php | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 43 deletions(-)

diff --git a/index.php b/index.php
index e3c94adf66f..94893e475a2 100755
--- a/index.php
+++ b/index.php
@@ -26,49 +26,8 @@ $RUNTIME_NOAPPS = TRUE; //no apps, yet
 
 require_once('lib/base.php');
 
-// Setup required :
-$not_installed = !OC_Config::getValue('installed', false);
-if($not_installed) {
-	// 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');
-	exit();
-}
-
-// Handle WebDAV
-if($_SERVER['REQUEST_METHOD']=='PROPFIND'){
-	header('location: '.OC_Helper::linkToRemote('webdav'));
-	exit();
-}
-elseif(!OC_User::isLoggedIn() && substr(OC::$REQUESTEDFILE,-3) == 'css'){
-	OC_App::loadApps();
-	OC::loadfile();
-}
-// Someone is logged in :
-elseif(OC_User::isLoggedIn()) {
-	OC_App::loadApps();
-	if(isset($_GET["logout"]) and ($_GET["logout"])) {
-		OC_User::logout();
-		header("Location: ".OC::$WEBROOT.'/');
-		exit();
-	}else{
-		if(is_null(OC::$REQUESTEDFILE)){
-			OC::loadapp();
-		}else{
-			OC::loadfile();
-		}
-	}
-
-// For all others cases, we display the guest page :
-} else {
+if (!OC::handleRequest()) {
+// Not handled -> we display the login page:
 	OC_App::loadApps(array('prelogin'));
 	$error = false;
 	// remember was checked after last login
diff --git a/lib/base.php b/lib/base.php
index c5827064d75..b91945ab97b 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -398,6 +398,54 @@ class OC{
 			}
 		}
 	}
+
+	/**
+	 * @brief Try to handle request
+	 * @return true when the request is handled here
+	 */
+	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');
+			exit();
+		}
+		// Handle WebDAV
+		if($_SERVER['REQUEST_METHOD']=='PROPFIND'){
+			header('location: '.OC_Helper::linkToRemote('webdav'));
+			return true;
+		}
+		if(!OC_User::isLoggedIn() && substr(OC::$REQUESTEDFILE,-3) == 'css') {
+			OC_App::loadApps();
+			OC::loadfile();
+			return true;
+		}
+		// Someone is logged in :
+		if(OC_User::isLoggedIn()) {
+			OC_App::loadApps();
+			if(isset($_GET["logout"]) and ($_GET["logout"])) {
+				OC_User::logout();
+				header("Location: ".OC::$WEBROOT.'/');
+			}else{
+				if(is_null(OC::$REQUESTEDFILE)) {
+					OC::loadapp();
+				}else{
+					OC::loadfile();
+				}
+			}
+			return true;
+		}
+		return false;
+	}
+
 }
 
 // define runtime variables - unless this already has been done
-- 
GitLab