summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Visscher <bart@thisnet.nl>2011-09-18 20:57:05 +0200
committerBart Visscher <bart@thisnet.nl>2011-09-18 20:57:05 +0200
commit8966ed5a004a9b830f093355170d381566d58554 (patch)
treec114ef6ceb1e385b10bf015ce3ad00bae5ed89bd
parent82c7598861db175617694891bb9f21b426426225 (diff)
downloadnextcloud-server-8966ed5a004a9b830f093355170d381566d58554.tar.gz
nextcloud-server-8966ed5a004a9b830f093355170d381566d58554.zip
Cleanup lib/base.php
-rw-r--r--index.php18
-rw-r--r--lib/base.php257
-rw-r--r--lib/files.php21
-rw-r--r--lib/setup.php2
-rw-r--r--lib/util.php2
5 files changed, 118 insertions, 182 deletions
diff --git a/index.php b/index.php
index 249ce41d51e..46105a106fb 100644
--- a/index.php
+++ b/index.php
@@ -25,23 +25,17 @@ $RUNTIME_NOAPPS = TRUE; //no apps, yet
require_once('lib/base.php');
-OC_Util::addScript('setup');
-
+// Setup required :
$not_installed = !OC_Config::getValue('installed', false);
$install_called = (isset($_POST['install']) AND $_POST['install']=='true');
-// First step : check if the server is correctly configured for ownCloud :
-$errors = OC_Util::checkServer();
-if(count($errors) > 0) {
- OC_Template::printGuestPage("", "error", array("errors" => $errors));
-}
-
-// Setup required :
-elseif($not_installed OR $install_called) {
+if($not_installed OR $install_called) {
+ OC_Util::addScript('setup');
require_once('setup.php');
exit();
}
-if($_SERVER['REQUEST_METHOD']=='PROPFIND'){//handle webdav
+// Handle WebDAV
+if($_SERVER['REQUEST_METHOD']=='PROPFIND'){
header('location: '.OC_Helper::linkTo('files','webdav.php'));
exit();
}
@@ -141,4 +135,4 @@ else {
}
}
-?> \ No newline at end of file
+?>
diff --git a/lib/base.php b/lib/base.php
index 7344601ba45..9542170df54 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -65,190 +65,115 @@ class OC{
elseif(strpos($className,'OC_')===0){
require_once strtolower(str_replace('_','/',substr($className,3)) . '.php');
}
+ elseif(strpos($className,'Sabre_')===0) {
+ require_once str_replace('_','/',$className) . '.php';
+ }
}
-}
-
-// this requires all our OC_* classes
-spl_autoload_register(array('OC','autoload'));
-
-// set some stuff
-//ob_start();
-error_reporting(E_ALL | E_STRICT);
-
-date_default_timezone_set('Europe/Berlin');
-ini_set('arg_separator.output','&amp;');
-ini_set('session.cookie_httponly','1;');
-session_start();
-
-// calculate the documentroot
-OC::$DOCUMENTROOT=realpath($_SERVER['DOCUMENT_ROOT']);
-OC::$SERVERROOT=str_replace("\\",'/',substr(__FILE__,0,-13));
-OC::$SUBURI=substr(realpath($_SERVER["SCRIPT_FILENAME"]),strlen(OC::$SERVERROOT));
-$scriptName=$_SERVER["SCRIPT_NAME"];
-if(substr($scriptName,-1)=='/'){
- $scriptName.='index.php';
-}
-OC::$WEBROOT=substr($scriptName,0,strlen($scriptName)-strlen(OC::$SUBURI));
-if(OC::$WEBROOT!='' and OC::$WEBROOT[0]!=='/'){
- OC::$WEBROOT='/'.OC::$WEBROOT;
-}
-
-// set the right include path
-set_include_path(OC::$SERVERROOT.'/lib'.PATH_SEPARATOR.OC::$SERVERROOT.'/config'.PATH_SEPARATOR.OC::$SERVERROOT.'/3rdparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.OC::$SERVERROOT);
-
-//Some libs we really depend on
-require_once('Sabre/autoload.php');
+ public static function init(){
+ // register autoloader
+ spl_autoload_register(array('OC','autoload'));
+
+ // set some stuff
+ //ob_start();
+ error_reporting(E_ALL | E_STRICT);
+
+ date_default_timezone_set('Europe/Berlin');
+ ini_set('arg_separator.output','&amp;');
+ ini_set('session.cookie_httponly','1;');
+ session_start();
+
+ // calculate the documentroot
+ OC::$DOCUMENTROOT=realpath($_SERVER['DOCUMENT_ROOT']);
+ OC::$SERVERROOT=str_replace("\\",'/',substr(__FILE__,0,-13));
+ OC::$SUBURI=substr(realpath($_SERVER["SCRIPT_FILENAME"]),strlen(OC::$SERVERROOT));
+ $scriptName=$_SERVER["SCRIPT_NAME"];
+ if(substr($scriptName,-1)=='/'){
+ $scriptName.='index.php';
+ }
+ OC::$WEBROOT=substr($scriptName,0,strlen($scriptName)-strlen(OC::$SUBURI));
-// define runtime variables - unless this already has been done
-if( !isset( $RUNTIME_NOSETUPFS )){
- $RUNTIME_NOSETUPFS = false;
-}
-if( !isset( $RUNTIME_NOAPPS )){
- $RUNTIME_NOAPPS = false;
-}
+ if(OC::$WEBROOT!='' and OC::$WEBROOT[0]!=='/'){
+ OC::$WEBROOT='/'.OC::$WEBROOT;
+ }
-// TODO: we should get rid of this one, too
-// WARNING: to make everything even more confusing, DATADIRECTORY is a var that
-// changes and DATADIRECTORY_ROOT stays the same, but is set by
-// "datadirectory". Any questions?
-OC::$CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
+ // set the right include path
+ set_include_path(OC::$SERVERROOT.'/lib'.PATH_SEPARATOR.OC::$SERVERROOT.'/config'.PATH_SEPARATOR.OC::$SERVERROOT.'/3rdparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.OC::$SERVERROOT);
-// redirect to https site if configured
-if( OC_Config::getValue( "forcessl", false )){
- if(!isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] != 'on') {
- $url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
- header("Location: $url");
- exit();
- }
-}
+ // redirect to https site if configured
+ if( OC_Config::getValue( "forcessl", false )){
+ if(!isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] != 'on') {
+ $url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
+ header("Location: $url");
+ exit();
+ }
+ }
-$errors=OC_Util::checkServer();
-$error=(count($errors)>0);
+ // Add the stuff we need always
+ OC_Util::addScript( "jquery-1.6.2.min" );
+ OC_Util::addScript( "jquery-ui-1.8.14.custom.min" );
+ OC_Util::addScript( "jquery-showpassword" );
+ OC_Util::addScript( "jquery-tipsy" );
+ OC_Util::addScript( "js" );
+ OC_Util::addScript( "multiselect" );
+ OC_Util::addScript('search','result');
+ OC_Util::addStyle( "styles" );
+ OC_Util::addStyle( "multiselect" );
+ OC_Util::addStyle( "jquery-ui-1.8.14.custom" );
+ OC_Util::addStyle( "jquery-tipsy" );
+
+ $errors=OC_Util::checkServer();
+ if(count($errors)>0) {
+ OC_Template::printGuestPage('', 'error', array('errors' => $errors));
+ exit;
+ }
+ // TODO: we should get rid of this one, too
+ // WARNING: to make everything even more confusing,
+ // DATADIRECTORY is a var that changes and DATADIRECTORY_ROOT
+ // stays the same, but is set by "datadirectory".
+ // Any questions?
+ OC::$CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
-// User and Groups
-if( !OC_Config::getValue( "installed", false )){
- $_SESSION['user_id'] = '';
-}
-
+ // User and Groups
+ if( !OC_Config::getValue( "installed", false )){
+ $_SESSION['user_id'] = '';
+ }
-OC_User::useBackend( OC_Config::getValue( "userbackend", "database" ));
-OC_Group::setBackend( OC_Config::getValue( "groupbackend", "database" ));
+ OC_User::useBackend( OC_Config::getValue( "userbackend", "database" ));
+ OC_Group::setBackend( OC_Config::getValue( "groupbackend", "database" ));
-// Add the stuff we need always
-OC_Util::addScript( "jquery-1.6.2.min" );
-OC_Util::addScript( "jquery-ui-1.8.14.custom.min" );
-OC_Util::addScript( "jquery-showpassword" );
-OC_Util::addScript( "jquery-tipsy" );
-OC_Util::addScript( "js" );
-OC_Util::addScript( "multiselect" );
-OC_Util::addScript('search','result');
-OC_Util::addStyle( "styles" );
-OC_Util::addStyle( "multiselect" );
-OC_Util::addStyle( "jquery-ui-1.8.14.custom" );
-OC_Util::addStyle( "jquery-tipsy" );
+ // Load Apps
+ // This includes plugins for users and filesystems as well
+ global $RUNTIME_NOAPPS;
+ if(!$RUNTIME_NOAPPS ){
+ OC_App::loadApps();
+ }
-// Load Apps
-// This includes plugins for users and filesystems as well
-if(!$error and !$RUNTIME_NOAPPS ){
- OC_App::loadApps();
-}
+ // Was in required file ... put it here
+ OC_Filesystem::registerStorageType('local','OC_Filestorage_Local',array('datadir'=>'string'));
-// Was in required file ... put it here
-OC_Filesystem::registerStorageType('local','OC_Filestorage_Local',array('datadir'=>'string'));
+ // Set up file system unless forbidden
+ global $RUNTIME_NOSETUPFS;
+ if(!$RUNTIME_NOSETUPFS ){
+ OC_Util::setupFS();
+ }
-// Set up file system unless forbidden
-if(!$error and !$RUNTIME_NOSETUPFS ){
- OC_Util::setupFS();
+ // Last part: connect some hooks
+ OC_HOOK::connect('OC_User', 'post_createUser', 'OC_Connector_Sabre_Principal', 'addPrincipal');
+ OC_HOOK::connect('OC_User', 'post_deleteUser', 'OC_Connector_Sabre_Principal', 'deletePrincipal');
+ }
}
-// Last part: connect some hooks
-OC_HOOK::connect('OC_User', 'post_createUser', 'OC_Connector_Sabre_Principal', 'addPrincipal');
-OC_HOOK::connect('OC_User', 'post_deleteUser', 'OC_Connector_Sabre_Principal', 'deletePrincipal');
-
-
-
-if($error) {
- $tmpl = new OC_Template( '', 'error', 'guest' );
- $tmpl->assign('errors',$errors);
- $tmpl->printPage();
- exit;
+// define runtime variables - unless this already has been done
+if( !isset( $RUNTIME_NOSETUPFS )){
+ $RUNTIME_NOSETUPFS = false;
}
-
-
-
-
-// FROM Connect.php
-function OC_CONNECT_TEST($path,$user,$password){
- echo 'connecting...';
- $remote=OC_Connect::connect($path,$user,$password);
- if($remote->connected){
- echo 'done<br/>';
- if($remote->isLoggedIn()){
- echo 'logged in, session working<br/>';
- echo 'trying to get remote files...';
- $files=$remote->getFiles('');
- if($files){
- echo count($files).' files found:<br/>';
- foreach($files as $file){
- echo "{$file['type']} {$file['name']}: {$file['size']} bytes<br/>";
- }
- echo 'getting file "'.$file['name'].'"...';
- $size=$file['size'];
- $file=$remote->getFile('',$file['name']);
- if(file_exists($file)){
- $newSize=filesize($file);
- if($size!=$newSize){
- echo "fail<br/>Error: $newSize bytes received, $size expected.";
- echo '<br/><br/>Recieved file:<br/>';
- readfile($file);
- unlink($file);
- return;
- }
- OC_Filesystem::fromTmpFile($file,'/remoteFile');
- echo 'done<br/>';
- echo 'sending file "burning_avatar.png"...';
- $res=$remote->sendFile('','burning_avatar.png','','burning_avatar.png');
- if($res){
- echo 'done<br/>';
- }else{
- echo 'fail<br/>';
- }
- }else{
- echo 'fail<br/>';
- }
- }else{
- echo 'fail<br/>';
- }
- }else{
- echo 'no longer logged in, session fail<br/>';
- }
- }else{
- echo 'fail<br/>';
- }
- $remote->disconnect();
- die();
+if( !isset( $RUNTIME_NOAPPS )){
+ $RUNTIME_NOAPPS = false;
}
-// From files.php
-function zipAddDir($dir,$zip,$internalDir=''){
- $dirname=basename($dir);
- $zip->addEmptyDir($internalDir.$dirname);
- $internalDir.=$dirname.='/';
- $files=OC_Files::getdirectorycontent($dir);
- foreach($files as $file){
- $filename=$file['name'];
- $file=$dir.'/'.$filename;
- if(OC_Filesystem::is_file($file)){
- $tmpFile=OC_Filesystem::toTmpFile($file);
- OC_Files::$tmpFiles[]=$tmpFile;
- $zip->addFile($tmpFile,$internalDir.$filename);
- }elseif(OC_Filesystem::is_dir($file)){
- zipAddDir($file,$zip,$internalDir);
- }
- }
-}
+OC::init();
if(!function_exists('sys_get_temp_dir')) {
function sys_get_temp_dir() {
diff --git a/lib/files.php b/lib/files.php
index 84dc9fd1c53..631726bf9b5 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -102,7 +102,7 @@ class OC_Files {
self::$tmpFiles[]=$tmpFile;
$zip->addFile($tmpFile,basename($file));
}elseif(OC_Filesystem::is_dir($file)){
- zipAddDir($file,$zip);
+ self::zipAddDir($file,$zip);
}
}
$zip->close();
@@ -113,7 +113,7 @@ class OC_Files {
exit("cannot open <$filename>\n");
}
$file=$dir.'/'.$files;
- zipAddDir($file,$zip);
+ self::zipAddDir($file,$zip);
$zip->close();
}else{
$zip=false;
@@ -156,6 +156,23 @@ class OC_Files {
}
}
+ public static function zipAddDir($dir,$zip,$internalDir=''){
+ $dirname=basename($dir);
+ $zip->addEmptyDir($internalDir.$dirname);
+ $internalDir.=$dirname.='/';
+ $files=OC_Files::getdirectorycontent($dir);
+ foreach($files as $file){
+ $filename=$file['name'];
+ $file=$dir.'/'.$filename;
+ if(OC_Filesystem::is_file($file)){
+ $tmpFile=OC_Filesystem::toTmpFile($file);
+ OC_Files::$tmpFiles[]=$tmpFile;
+ $zip->addFile($tmpFile,$internalDir.$filename);
+ }elseif(OC_Filesystem::is_dir($file)){
+ self::zipAddDir($file,$zip,$internalDir);
+ }
+ }
+ }
/**
* move a file or folder
*
diff --git a/lib/setup.php b/lib/setup.php
index 7183eb624a8..7b205acd705 100644
--- a/lib/setup.php
+++ b/lib/setup.php
@@ -235,7 +235,7 @@ class OC_Setup {
}
private static function createDBUser($name,$password,$connection) {
- // we need to create 2 accounts, one for global use and one for local user. if we don't speccify the local one,
+ // we need to create 2 accounts, one for global use and one for local user. if we don't specify the local one,
// the anonymous user would take precedence when there is one.
$query = "CREATE USER '$name'@'localhost' IDENTIFIED BY '$password'";
$result = mysql_query($query, $connection);
diff --git a/lib/util.php b/lib/util.php
index e6c4eb83b33..2f74bfe5841 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -236,7 +236,7 @@ class OC_Util {
}
}
}else{
- //TODO: premisions checks for windows hosts
+ //TODO: permissions checks for windows hosts
}
if(is_dir($CONFIG_DATADIRECTORY_ROOT) and !is_writable($CONFIG_DATADIRECTORY_ROOT)){
$errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') not writable by ownCloud<br/>','hint'=>$permissionsHint);