diff --git a/index.php b/index.php index e3c94adf66..94893e475a 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 c5827064d7..b91945ab97 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