@@ -1,12 +1,15 @@ | |||
<?php | |||
$CONFIG_ADMINLOGIN='admin-username'; | |||
$CONFIG_ADMINPASSWORD='password'; | |||
$CONFIG_DATADIRECTORY='write/absolute-drectory/path/here/'; | |||
$CONFIG_HTTPFORCESSL=false; | |||
$CONFIG_DATEFORMAT='j M Y G:i'; | |||
$CONFIG_DBHOST='localhost'; | |||
$CONFIG_DBNAME='owncloud-db-name'; | |||
$CONFIG_DBUSER='user-name'; | |||
$CONFIG_DBPASSWORD='password'; | |||
$CONFIG_DBTABLEPREFIX = 'oc_'; | |||
<?php | |||
$CONFIG = array( | |||
"installed" => false, | |||
"dbtype" => "sqlite", | |||
"dbname" => "owncloud", | |||
"dbuser" => "", | |||
"dbpassword" => "", | |||
"dbhost" => "", | |||
"dbtableprefix" => "", | |||
"forcessl" => false, | |||
"enablebackup" => false, | |||
// "datadirectory" => "" | |||
); | |||
?> |
@@ -24,29 +24,31 @@ | |||
require_once( 'lib/base.php' ); | |||
require_once( 'appconfig.php' ); | |||
require_once( 'template.php' ); | |||
var_dump( $_SESSION ); | |||
//exit; | |||
if( OC_USER::isLoggedIn()){ | |||
if( $_GET["logout"] ){ | |||
OC_USER::logout(); | |||
OC_TEMPLATE::printGuestPage( "", "logout" ); | |||
} | |||
else{ | |||
header( "Location: ".OC_APPCONFIG::getValue( "core", "defaultpage", "files/index.php" )); | |||
exit(); | |||
} | |||
if( $_GET["logout"] ){ | |||
OC_USER::logout(); | |||
OC_TEMPLATE::printGuestPage( "", "logout" ); | |||
} | |||
else{ | |||
header( "Location: ".OC_APPCONFIG::getValue( "core", "defaultpage", "files/index.php" )); | |||
exit(); | |||
} | |||
} | |||
else{ | |||
if( OC_USER::login( $_POST["user"], $_POST["password"] )){ | |||
header( "Location: ".OC_APPCONFIG::getValue( "core", "defaultpage", "files/index.php" )); | |||
exit(); | |||
} | |||
else{ | |||
$error = false; | |||
// Say "bad login" in case the user wanted to login | |||
if( $_POST["user"] && $_POST["password"] ){ | |||
$error = true; | |||
} | |||
OC_TEMPLATE::printGuestPage( "", "login", array( "error" => $error )); | |||
} | |||
if( OC_USER::login( $_POST["user"], $_POST["password"] )){ | |||
header( "Location: ".OC_APPCONFIG::getValue( "core", "defaultpage", "files/index.php" )); | |||
exit(); | |||
} | |||
else{ | |||
$error = false; | |||
// Say "bad login" in case the user wanted to login | |||
if( $_POST["user"] && $_POST["password"] ){ | |||
$error = true; | |||
} | |||
OC_TEMPLATE::printGuestPage( "", "login", array( "error" => $error )); | |||
} | |||
} | |||
?> |
@@ -55,24 +55,21 @@ if( !isset( $RUNTIME_NOAPPS )){ | |||
$RUNTIME_NOAPPS = false; | |||
} | |||
// define default config values | |||
$CONFIG_DATADIRECTORY=$SERVERROOT.'/data'; | |||
$CONFIG_BACKUPDIRECTORY=$SERVERROOT.'/backup'; | |||
$CONFIG_HTTPFORCESSL=false; | |||
$CONFIG_ENABLEBACKUP=false; | |||
$CONFIG_DATEFORMAT='j M Y G:i'; | |||
$CONFIG_FILESYSTEM=array(); | |||
// include the generated configfile | |||
@include_once($SERVERROOT.'/config/config.php'); | |||
$CONFIG_DATADIRECTORY_ROOT=$CONFIG_DATADIRECTORY;// store this in a seperate variable so we can change the data directory to jail users. | |||
// Doing the config stuff first | |||
require_once('config.php'); | |||
// TODO: we should get rid of this one, too | |||
// WARNING: to make everything even more confusing, DATADIRECTORY is a var that | |||
// changes and DATATIRECTORY_ROOT stays the same, but is set by | |||
// "datadirectory". Any questions? | |||
$CONFIG_DATADIRECTORY = OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" ); | |||
// redirect to https site if configured | |||
if(isset($CONFIG_HTTPFORCESSL) and $CONFIG_HTTPFORCESSL){ | |||
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; | |||
exit(); | |||
} | |||
} | |||
@@ -85,7 +82,6 @@ require_once('filesystem.php'); | |||
require_once('filestorage.php'); | |||
require_once('fileobserver.php'); | |||
require_once('log.php'); | |||
require_once('config.php'); | |||
require_once('user.php'); | |||
require_once('group.php'); | |||
require_once('ocs.php'); | |||
@@ -95,11 +91,8 @@ require_once('plugin.php'); | |||
OC_PLUGIN::loadPlugins( "" ); | |||
if(!isset($CONFIG_BACKEND)){ | |||
$CONFIG_BACKEND='database'; | |||
} | |||
OC_USER::setBackend( $CONFIG_BACKEND ); | |||
OC_GROUP::setBackend( $CONFIG_BACKEND ); | |||
OC_USER::setBackend( OC_CONFIG::getValue( "userbackend", "database" )); | |||
OC_GROUP::setBackend( OC_CONFIG::getValue( "groupbackend", "database" )); | |||
// Set up file system unless forbidden | |||
if( !$RUNTIME_NOSETUPFS ){ | |||
@@ -138,11 +131,10 @@ class OC_UTIL { | |||
// Global Variables | |||
global $SERVERROOT; | |||
global $CONFIG_DATADIRECTORY_ROOT; | |||
global $CONFIG_DATADIRECTORY; | |||
global $CONFIG_BACKUPDIRECTORY; | |||
global $CONFIG_ENABLEBACKUP; | |||
global $CONFIG_FILESYSTEM; | |||
$CONFIG_DATADIRECTORY_ROOT = OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" ); | |||
$CONFIG_BACKUPDIRECTORY = OC_CONFIG::getValue( "backupdirectory", "$SERVERROOT/backup" ); | |||
// Create root dir | |||
if(!is_dir($CONFIG_DATADIRECTORY_ROOT)){ | |||
@@ -157,7 +149,7 @@ class OC_UTIL { | |||
if( $user != "" ){ //if we aren't logged in, there is no use to set up the filesystem | |||
//first set up the local "root" storage and the backupstorage if needed | |||
$rootStorage=OC_FILESYSTEM::createStorage('local',array('datadir'=>$CONFIG_DATADIRECTORY)); | |||
if($CONFIG_ENABLEBACKUP){ | |||
if( OC_CONFIG::getValue( "enablebackup", false )){ | |||
// This creates the Directorys recursively | |||
if(!is_dir( "$CONFIG_BACKUPDIRECTORY/$user/$root" )){ | |||
mkdir( "$CONFIG_BACKUPDIRECTORY/$user/$root", 0755, true ); | |||
@@ -173,18 +165,19 @@ class OC_UTIL { | |||
mkdir( $CONFIG_DATADIRECTORY, 0755, true ); | |||
} | |||
//set up the other storages according to the system settings | |||
foreach($CONFIG_FILESYSTEM as $storageConfig){ | |||
if(OC_FILESYSTEM::hasStorageType($storageConfig['type'])){ | |||
$arguments=$storageConfig; | |||
unset($arguments['type']); | |||
unset($arguments['mountpoint']); | |||
$storage=OC_FILESYSTEM::createStorage($storageConfig['type'],$arguments); | |||
if($storage){ | |||
OC_FILESYSTEM::mount($storage,$storageConfig['mountpoint']); | |||
} | |||
} | |||
} | |||
// TODO: find a cool way for doing this | |||
// //set up the other storages according to the system settings | |||
// foreach($CONFIG_FILESYSTEM as $storageConfig){ | |||
// if(OC_FILESYSTEM::hasStorageType($storageConfig['type'])){ | |||
// $arguments=$storageConfig; | |||
// unset($arguments['type']); | |||
// unset($arguments['mountpoint']); | |||
// $storage=OC_FILESYSTEM::createStorage($storageConfig['type'],$arguments); | |||
// if($storage){ | |||
// OC_FILESYSTEM::mount($storage,$storageConfig['mountpoint']); | |||
// } | |||
// } | |||
// } | |||
//jail the user into his "home" directory | |||
OC_FILESYSTEM::chroot("/$user/$root"); | |||
@@ -232,9 +225,10 @@ class OC_UTIL { | |||
*/ | |||
public static function checkServer(){ | |||
global $SERVERROOT; | |||
global $CONFIG_DATADIRECTORY_ROOT; | |||
global $CONFIG_BACKUPDIRECTORY; | |||
global $CONFIG_ENABLEBACKUP; | |||
global $CONFIG_DATADIRECTORY; | |||
$CONFIG_DATADIRECTORY_ROOT = OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );; | |||
$CONFIG_BACKUPDIRECTORY = OC_CONFIG::getValue( "backupdirectory", "$SERVERROOT/backup" ); | |||
$CONFIG_INSTALLED = OC_CONFIG::getValue( "installed", false ); | |||
$error=''; | |||
if(!is_callable('sqlite_open') and !is_callable('mysql_connect')){ | |||
@@ -266,7 +260,7 @@ class OC_UTIL { | |||
$error.='Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web<br/>'; | |||
} | |||
} | |||
if($CONFIG_ENABLEBACKUP){ | |||
if( OC_CONFIG::getValue( "enablebackup", false )){ | |||
$prems=substr(decoct(fileperms($CONFIG_BACKUPDIRECTORY)),-3); | |||
if(substr($prems,-1)!='0'){ | |||
OC_HELPER::chmodr($CONFIG_BACKUPDIRECTORY,0770); |
@@ -172,7 +172,7 @@ class OC_CONFIG{ | |||
} | |||
else{ | |||
$value = str_replace( "'", "\\'", $value ); | |||
$configContent .= "\"$key\" => '$value',\n"; | |||
$content .= "\"$key\" => '$value',\n"; | |||
} | |||
} | |||
$content .= ");\n?>\n"; |
@@ -3,22 +3,22 @@ | |||
/** | |||
* ownCloud | |||
* | |||
* @author Frank Karlitschek | |||
* @copyright 2010 Frank Karlitschek karlitschek@kde.org | |||
* | |||
* @author Frank Karlitschek | |||
* @copyright 2010 Frank Karlitschek karlitschek@kde.org | |||
* | |||
* This library is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE | |||
* License as published by the Free Software Foundation; either | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or any later version. | |||
* | |||
* | |||
* This library is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public | |||
* | |||
* You should have received a copy of the GNU Affero General Public | |||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
* | |||
*/ | |||
/** | |||
@@ -27,7 +27,7 @@ | |||
*/ | |||
class OC_CONNECT{ | |||
static private $clouds=array(); | |||
static function connect($path,$user,$password){ | |||
$cloud=new OC_REMOTE_CLOUD($path,$user,$password); | |||
if($cloud->connected){ | |||
@@ -48,7 +48,7 @@ class OC_REMOTE_CLOUD{ | |||
private $path; | |||
private $connected=false; | |||
private $cookiefile=false; | |||
/** | |||
* make an api call to the remote cloud | |||
* @param string $action | |||
@@ -72,8 +72,8 @@ class OC_REMOTE_CLOUD{ | |||
curl_setopt($ch,CURLOPT_URL,$url); | |||
curl_setopt($ch,CURLOPT_POST,count($parameters)); | |||
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); | |||
curl_setopt($ch, CURLOPT_COOKIEFILE,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_COOKIEJAR,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_COOKIEFILE,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_COOKIEJAR,$this->cookiefile); | |||
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); | |||
$result=curl_exec($ch); | |||
$result=trim($result); | |||
@@ -86,12 +86,12 @@ class OC_REMOTE_CLOUD{ | |||
return false; | |||
} | |||
} | |||
public function __construct($path,$user,$password){ | |||
$this->path=$path; | |||
$this->connected=$this->apiCall('login',array('username'=>$user,'password'=>$password)); | |||
} | |||
/** | |||
* check if we are stull logged in on the remote cloud | |||
* | |||
@@ -102,14 +102,14 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('checklogin'); | |||
} | |||
public function __get($name){ | |||
switch($name){ | |||
case 'connected': | |||
return $this->connected; | |||
} | |||
} | |||
/** | |||
* disconnect from the remote cloud | |||
* | |||
@@ -121,7 +121,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
$this->cookiefile=false; | |||
} | |||
/** | |||
* create a new file or directory | |||
* @param string $dir | |||
@@ -134,7 +134,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('new',array('dir'=>$dir,'name'=>$name,'type'=>$type),true); | |||
} | |||
/** | |||
* deletes a file or directory | |||
* @param string $dir | |||
@@ -146,7 +146,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('delete',array('dir'=>$dir,'file'=>$name),true); | |||
} | |||
/** | |||
* moves a file or directory | |||
* @param string $sorceDir | |||
@@ -160,7 +160,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('move',array('sourcedir'=>$sourceDir,'source'=>$sourceFile,'targetdir'=>$targetDir,'target'=>$targetFile),true); | |||
} | |||
/** | |||
* copies a file or directory | |||
* @param string $sorceDir | |||
@@ -174,7 +174,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('copy',array('sourcedir'=>$sourceDir,'source'=>$sourceFile,'targetdir'=>$targetDir,'target'=>$targetFile),true); | |||
} | |||
/** | |||
* get a file tree | |||
* @param string $dir | |||
@@ -185,7 +185,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('gettree',array('dir'=>$dir),true); | |||
} | |||
/** | |||
* get the files inside a directory of the remote cloud | |||
* @param string $dir | |||
@@ -196,7 +196,7 @@ class OC_REMOTE_CLOUD{ | |||
} | |||
return $this->apiCall('getfiles',array('dir'=>$dir),true); | |||
} | |||
/** | |||
* get a remove file and save it in a temporary file and return the path of the temporary file | |||
* @param string $dir | |||
@@ -215,28 +215,28 @@ class OC_REMOTE_CLOUD{ | |||
$fp=fopen($tmpfile,'w+'); | |||
$url=$this->path.="/files/api.php?action=get&dir=$dir&file=$file"; | |||
curl_setopt($ch,CURLOPT_URL,$url); | |||
curl_setopt($ch, CURLOPT_COOKIEFILE,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_COOKIEJAR,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_COOKIEFILE,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_COOKIEJAR,$this->cookiefile); | |||
curl_setopt($ch, CURLOPT_FILE, $fp); | |||
curl_exec($ch); | |||
fclose($fp); | |||
curl_close($ch); | |||
return $tmpfile; | |||
} | |||
public function sendFile($sourceDir,$sourceFile,$targetDir,$targetFile){ | |||
global $WEBROOT; | |||
$source=$sourceDir.'/'.$sourceFile; | |||
$tmp=OC_FILESYSTEM::toTmpFile($source); | |||
return $this->sendTmpFile($tmp,$targetDir,$targetFile); | |||
} | |||
public function sendTmpFile($tmp,$targetDir,$targetFile){ | |||
$token=sha1(uniqid().$tmp); | |||
global $WEBROOT; | |||
$file=sys_get_temp_dir().'/'.'remoteCloudFile'.$token; | |||
rename($tmp,$file); | |||
if((isset($CONFIG_HTTPFORCESSL) and $CONFIG_HTTPFORCESSL) or isset($_SERVER['HTTPS']) and $_SERVER['HTTPS'] == 'on') { | |||
if( OC_CONFIG::getValue( "forcessl", false ) or isset($_SERVER['HTTPS']) and $_SERVER['HTTPS'] == 'on') { | |||
$url = "https://". $_SERVER['SERVER_NAME'] . $WEBROOT; | |||
}else{ | |||
$url = "http://". $_SERVER['SERVER_NAME'] . $WEBROOT; |
@@ -20,7 +20,7 @@ | |||
* | |||
*/ | |||
if( !$CONFIG_INSTALLED ){ | |||
if( !OC_CONFIG::getValue( "installed", false )){ | |||
$_SESSION['user_id'] = ''; | |||
} | |||