summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorFrank Karlitschek <frank@dev.(none)>2010-03-29 16:13:26 +0200
committerFrank Karlitschek <frank@dev.(none)>2010-03-29 16:13:26 +0200
commit78a1792c0488ed31da5577664924694bf1fb4e40 (patch)
tree13cae434f19c8fb8d866773b3d8c10529c455168 /inc
parentba9c95621bccddc8c83689906643a080e1671f22 (diff)
downloadnextcloud-server-78a1792c0488ed31da5577664924694bf1fb4e40.tar.gz
nextcloud-server-78a1792c0488ed31da5577664924694bf1fb4e40.zip
move to sqlite merged
Diffstat (limited to 'inc')
-rwxr-xr-xinc/HTTP/WebDAV/Server/Filesystem.php74
-rwxr-xr-xinc/lib_base.php52
-rwxr-xr-x[-rw-r--r--]inc/lib_config.php123
-rwxr-xr-xinc/templates/configform.php25
4 files changed, 75 insertions, 199 deletions
diff --git a/inc/HTTP/WebDAV/Server/Filesystem.php b/inc/HTTP/WebDAV/Server/Filesystem.php
index eeec0af41bd..81dd64983ff 100755
--- a/inc/HTTP/WebDAV/Server/Filesystem.php
+++ b/inc/HTTP/WebDAV/Server/Filesystem.php
@@ -1,5 +1,6 @@
<?php
-
+
+ require_once "lib_base.php";
require_once "HTTP/WebDAV/Server.php";
require_once "System.php";
@@ -20,38 +21,6 @@
*/
var $base = "";
- /**
- * MySQL Host where property and locking information is stored
- *
- * @access private
- * @var string
- */
- var $db_host = "localhost";
-
- /**
- * MySQL database for property/locking information storage
- *
- * @access private
- * @var string
- */
- var $db_name = "webdav";
-
- /**
- * MySQL user for property/locking db access
- *
- * @access private
- * @var string
- */
- var $db_user = "root";
-
- /**
- * MySQL password for property/locking db access
- *
- * @access private
- * @var string
- */
- var $db_passwd = "";
-
/**
* Serve a webdav request
*
@@ -79,11 +48,6 @@
$this->base = $_SERVER['DOCUMENT_ROOT'];
}
- // establish connection to property/locking db
- mysql_connect($this->db_host, $this->db_user, $this->db_passwd) or die(mysql_error());
- mysql_select_db($this->db_name) or die(mysql_error());
- // TODO throw on connection problems
-
// let the base class do all the work
parent::ServeRequest();
}
@@ -192,11 +156,11 @@
// get additional properties from database
$query = "SELECT ns, name, value FROM properties WHERE path = '$path'";
- $res = mysql_query($query);
- while ($row = mysql_fetch_assoc($res)) {
+ $res = OC_DB::query($query);
+ while ($row = OC_DB::fetch_assoc($res)) {
$info["props"][] = $this->mkprop($row["ns"], $row["name"], $row["value"]);
}
- mysql_free_result($res);
+ OC_DB::free_result($res);
return $info;
}
@@ -478,13 +442,13 @@
if (is_dir($path)) {
$query = "DELETE FROM properties WHERE path LIKE '".$this->_slashify($options["path"])."%'";
- mysql_query($query);
+ OC_DB::query($query);
System::rm("-rf $path");
} else {
unlink ($path);
}
$query = "DELETE FROM properties WHERE path = '$options[path]'";
- mysql_query($query);
+ OC_DB::query($query);
return "204 No Content";
}
@@ -568,13 +532,13 @@
$query = "UPDATE properties
SET path = REPLACE(path, '".$options["path"]."', '".$destpath."')
WHERE path LIKE '".$this->_slashify($options["path"])."%'";
- mysql_query($query);
+ OC_DB::query($query);
}
$query = "UPDATE properties
SET path = '".$destpath."'
WHERE path = '".$options["path"]."'";
- mysql_query($query);
+ OC_DB::query($query);
} else {
if (is_dir($source)) {
$files = System::find($source);
@@ -644,7 +608,7 @@
} else {
$query = "DELETE FROM properties WHERE path = '$options[path]' AND name = '$prop[name]' AND ns = '$prop[ns]'";
}
- mysql_query($query);
+ OC_DB::query($query);
}
}
@@ -662,9 +626,9 @@
{
if (isset($options["update"])) { // Lock Update
$query = "UPDATE locks SET expires = ".(time()+300);
- mysql_query($query);
+ OC_DB::query($query);
- if (mysql_affected_rows()) {
+ if (OC_DB::affected_rows()) {
$options["timeout"] = 300; // 5min hardcoded
return true;
} else {
@@ -681,9 +645,9 @@
, expires = '$options[timeout]'
, exclusivelock = " .($options['scope'] === "exclusive" ? "1" : "0")
;
- mysql_query($query);
+ OC_DB::query($query);
- return mysql_affected_rows() ? "200 OK" : "409 Conflict";
+ return OC_DB::affected_rows() ? "200 OK" : "409 Conflict";
}
/**
@@ -697,9 +661,9 @@
$query = "DELETE FROM locks
WHERE path = '$options[path]'
AND token = '$options[token]'";
- mysql_query($query);
+ OC_DB::query($query);
- return mysql_affected_rows() ? "204 No Content" : "409 Conflict";
+ return OC_DB::affected_rows() ? "204 No Content" : "409 Conflict";
}
/**
@@ -716,11 +680,11 @@
FROM locks
WHERE path = '$path'
";
- $res = mysql_query($query);
+ $res = OC_DB::query($query);
if ($res) {
- $row = mysql_fetch_array($res);
- mysql_free_result($res);
+ $row = OC_DB::fetch_assoc($res);
+ OC_DB::free_result($res);
if ($row) {
$result = array( "type" => "write",
diff --git a/inc/lib_base.php b/inc/lib_base.php
index f30c85d7aec..96ba05b5813 100755
--- a/inc/lib_base.php
+++ b/inc/lib_base.php
@@ -45,10 +45,7 @@ $CONFIG_ADMINPASSWORD='';
$CONFIG_DATADIRECTORY=$SERVERROOT.$WEBROOT.'/data';
$CONFIG_HTTPFORCESSL=false;
$CONFIG_DATEFORMAT='j M Y G:i';
-$CONFIG_DBHOST='localhost';
$CONFIG_DBNAME='owncloud';
-$CONFIG_DBUSER='';
-$CONFIG_DBPASSWORD='';
// include the generated configfile
@include_once('config.php');
@@ -111,9 +108,9 @@ class OC_USER {
*
*/
public static function logoutlisener(){
- if(isset($_GET['logoutbutton'])){
+ if(isset($_GET['logoutbutton']) && isset($_SESSION['username'])){
OC_LOG::event($_SESSION['username'],2,'');
- if(isset($_SESSION['username'])) unset($_SESSION['username']);
+ unset($_SESSION['username']);
}
}
@@ -238,14 +235,12 @@ class OC_DB {
* @return result-set
*/
static function query($cmd) {
+ global $DOCUMENTROOT;
global $DBConnection;
- global $CONFIG_DBHOST;
global $CONFIG_DBNAME;
- global $CONFIG_DBUSER;
- global $CONFIG_DBPASSWORD;
if(!isset($DBConnection)) {
- $DBConnection = @new mysqli($CONFIG_DBHOST, $CONFIG_DBUSER, $CONFIG_DBPASSWORD,$CONFIG_DBNAME);
- if (mysqli_connect_errno()) {
+ $DBConnection = @new SQLiteDatabase($DOCUMENTROOT.'/'.$CONFIG_DBNAME);
+ if (!$DBConnection) {
@ob_end_clean();
echo('<b>can not connect to database.</center>');
exit();
@@ -253,12 +248,12 @@ class OC_DB {
}
$result = @$DBConnection->query($cmd);
if (!$result) {
- $entry='DB Error: "'.$DBConnection->error.'"<br />';
+ $entry='DB Error: "'.sqlite_error_string($DBConnection->lastError()).'"<br />';
$entry.='Offending command was: '.$cmd.'<br />';
echo($entry);
}
return $result;
- }
+ }
/**
* executes multiply queries on the database
@@ -267,22 +262,20 @@ class OC_DB {
* @return result-set
*/
static function multiquery($cmd) {
+ global $DOCUMENTROOT;
global $DBConnection;
- global $CONFIG_DBHOST;
global $CONFIG_DBNAME;
- global $CONFIG_DBUSER;
- global $CONFIG_DBPASSWORD;
if(!isset($DBConnection)) {
- $DBConnection = @new mysqli($CONFIG_DBHOST, $CONFIG_DBUSER, $CONFIG_DBPASSWORD,$CONFIG_DBNAME);
- if (mysqli_connect_errno()) {
+ $DBConnection = @new SQLiteDatabase($DOCUMENTROOT.'/'.$CONFIG_DBNAME);
+ if (!$DBConnection) {
@ob_end_clean();
echo('<b>can not connect to database.</center>');
exit();
}
}
- $result = @$DBConnection->multi_query($cmd);
+ $result = @$DBConnection->queryExec($cmd);
if (!$result) {
- $entry='DB Error: "'.$DBConnection->error.'"<br />';
+ $entry='DB Error: "'.sqlite_error_string($DBConnection->lastError()).'"<br />';
$entry.='Offending command was: '.$cmd.'<br />';
echo($entry);
}
@@ -312,7 +305,7 @@ class OC_DB {
*/
static function insertid() {
global $DBConnection;
- return(mysqli_insert_id($DBConnection));
+ return $DBConnectio->lastInsertRowid();
}
/**
@@ -323,7 +316,7 @@ class OC_DB {
*/
static function numrows($result) {
if(!isset($result) or ($result == false)) return 0;
- $num= mysqli_num_rows($result);
+ $num= $result->numRows();
return($num);
}
@@ -335,7 +328,7 @@ class OC_DB {
static function affected_rows() {
global $DBConnection;
if(!isset($DBConnection) or ($DBConnection==false)) return 0;
- $num= mysqli_affected_rows($DBConnection);
+ $num= $DBConnection->changes();
return($num);
}
@@ -348,16 +341,10 @@ class OC_DB {
* @return unknown
*/
static function result($result, $i, $field) {
- //return @mysqli_result($result, $i, $field);
-
- mysqli_data_seek($result,$i);
- if (is_string($field))
- $tmp=mysqli_fetch_array($result,MYSQLI_BOTH);
- else
- $tmp=mysqli_fetch_array($result,MYSQLI_NUM);
+ $result->seek($ii);
+ $tmp=$result->fetch();
$tmp=$tmp[$field];
return($tmp);
-
}
/**
@@ -367,7 +354,7 @@ class OC_DB {
* @return data
*/
static function fetch_assoc($result) {
- return mysqli_fetch_assoc($result);
+ return $result->fetch(SQLITE_ASSOC);
}
@@ -378,7 +365,8 @@ class OC_DB {
* @return bool
*/
static function free_result($result) {
- return @mysqli_free_result($result);
+ $result = null; //No native way to do this
+ return true;
}
}
diff --git a/inc/lib_config.php b/inc/lib_config.php
index ff0c38f1705..8718a603d61 100644..100755
--- a/inc/lib_config.php
+++ b/inc/lib_config.php
@@ -10,10 +10,7 @@ class OC_CONFIG{
global $CONFIG_DATADIRECTORY;
global $CONFIG_HTTPFORCESSL;
global $CONFIG_DATEFORMAT;
- global $CONFIG_DBHOST;
global $CONFIG_DBNAME;
- global $CONFIG_DBUSER;
- global $CONFIG_DBPASSWORD;
require('templates/configform.php');
}
@@ -24,17 +21,12 @@ class OC_CONFIG{
public static function writeconfiglisener(){
global $DOCUMENTROOT;
global $WEBROOT;
- global $CONFIG_DBHOST;
global $CONFIG_DBNAME;
- global $CONFIG_DBUSER;
- global $CONFIG_DBPASSWORD;
- global $CONFIG_ADMINLOGIN;
- global $CONFIG_ADMINPASSWORD;
if(isset($_POST['set_config'])){
//checkdata
$error='';
- $FIRSTRUN=empty($CONFIG_ADMINLOGIN);
+ $FIRSTRUN=isset($CONFIG_ADMINLOGIN);
if(!$FIRSTRUN){
if($_POST['currentpassword']!=$CONFIG_ADMINPASSWORD){
$error.='wrong password';
@@ -46,27 +38,15 @@ class OC_CONFIG{
if(!isset($_POST['adminpassword2']) or empty($_POST['adminpassword2']) and $FIRSTRUN) $error.='retype admin password not set<br />';
if(!isset($_POST['datadirectory']) or empty($_POST['datadirectory'])) $error.='data directory not set<br />';
if(!isset($_POST['dateformat']) or empty($_POST['dateformat'])) $error.='dteformat not set<br />';
- if(!isset($_POST['dbhost']) or empty($_POST['dbhost'])) $error.='database host not set<br />';
if(!isset($_POST['dbname']) or empty($_POST['dbname'])) $error.='databasename not set<br />';
- if(!isset($_POST['dbuser']) or empty($_POST['dbuser'])) $error.='database user not set<br />';
- if(!isset($_POST['dbpassword']) or empty($_POST['dbpassword'])) $error.='database password not set<br />';
- if(!isset($_POST['dbpassword2']) or empty($_POST['dbpassword2'])) $error.='retype database password not set<br />';
- if($_POST['dbpassword']<>$_POST['dbpassword2'] ) $error.='database passwords are not the same<br />';
if($_POST['adminpassword']<>$_POST['adminpassword2'] ) $error.='admin passwords are not the same<br />';
if(!isset($_POST['adminpassword']) or empty($_POST['adminpassword']) and !$FIRSTRUN){
$_POST['adminpassword']=$CONFIG_ADMINPASSWORD;
}
-
if(empty($error)) {
//create/fill database
- $CONFIG_DBHOST=$_POST['dbhost'];
$CONFIG_DBNAME=$_POST['dbname'];
- $CONFIG_DBUSER=$_POST['dbuser'];
- $CONFIG_DBPASSWORD=$_POST['dbpassword'];
- if(isset($_POST['createdatabase'])){
- self::createdatabase($_POST['dbadminuser'],$_POST['dbadminpwd']);
- }
if(isset($_POST['filldb'])){
self::filldatabase();
}
@@ -78,11 +58,8 @@ class OC_CONFIG{
$config.='$CONFIG_DATADIRECTORY=\''.$_POST['datadirectory']."';\n";
if(isset($_POST['forcessl'])) $config.='$CONFIG_HTTPFORCESSL=true'.";\n"; else $config.='$CONFIG_HTTPFORCESSL=false'.";\n";
$config.='$CONFIG_DATEFORMAT=\''.$_POST['dateformat']."';\n";
- $config.='$CONFIG_DBHOST=\''.$_POST['dbhost']."';\n";
$config.='$CONFIG_DBNAME=\''.$_POST['dbname']."';\n";
- $config.='$CONFIG_DBUSER=\''.$_POST['dbuser']."';\n";
- $config.='$CONFIG_DBPASSWORD=\''.$_POST['dbpassword']."';\n";
- $config.='?>';
+ $config.='?> ';
$filename=$DOCUMENTROOT.'/config/config.php';
file_put_contents($filename,$config);
@@ -96,81 +73,43 @@ class OC_CONFIG{
}
- /**
- * Create the database and user
- * @param string adminUser
- * @param string adminPwd
- *
- */
- private static function createdatabase($adminUser,$adminPwd){
- global $CONFIG_DBHOST;
- global $CONFIG_DBNAME;
- global $CONFIG_DBUSER;
- global $CONFIG_DBPWD;
- //we cant user OC_BD functions here because we need to connect as the administrative user.
- $connection = @new mysqli($CONFIG_DBHOST, $adminUser, $adminPwd);
- if (mysqli_connect_errno()) {
- @ob_end_clean();
- echo('<html><head></head><body bgcolor="#F0F0F0"><br /><br /><center><b>can not connect to database as administrative user.</center></body></html>');
- exit();
- }
- $query="CREATE USER '{$_POST['dbuser']}' IDENTIFIED BY '{$_POST['dbpassword']}';
-
-CREATE DATABASE IF NOT EXISTS `{$_POST['dbname']}` ;
-
-GRANT ALL PRIVILEGES ON `{$_POST['dbname']}` . * TO '{$_POST['dbuser']}';";
- $result = @$connection->multi_query($query);
- if (!$result) {
- $entry='DB Error: "'.$connection->error.'"<br />';
- $entry.='Offending command was: '.$query.'<br />';
- echo($entry);
- }
- $connection->close();
- }
-
/**
* Fills the database with the initial tables
- *
+ * Note: while the AUTO_INCREMENT function is not supported by SQLite
+ * the same effect can be achieved by accessing the SQLite pseudo-column
+ * "rowid"
*/
private static function filldatabase(){
- $query="SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";
-
-CREATE TABLE IF NOT EXISTS `locks` (
- `token` varchar(255) NOT NULL DEFAULT '',
- `path` varchar(200) NOT NULL DEFAULT '',
- `expires` int(11) NOT NULL DEFAULT '0',
- `owner` varchar(200) DEFAULT NULL,
- `recursive` int(11) DEFAULT '0',
- `writelock` int(11) DEFAULT '0',
- `exclusivelock` int(11) NOT NULL DEFAULT '0',
- PRIMARY KEY (`token`),
- UNIQUE KEY `token` (`token`),
- KEY `path` (`path`),
- KEY `path_2` (`path`),
- KEY `path_3` (`path`,`token`),
- KEY `expires` (`expires`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+ $query="CREATE TABLE 'locks' (
+ 'token' VARCHAR(255) NOT NULL DEFAULT '',
+ 'path' varchar(200) NOT NULL DEFAULT '',
+ 'expires' int(11) NOT NULL DEFAULT '0',
+ 'owner' varchar(200) DEFAULT NULL,
+ 'recursive' int(11) DEFAULT '0',
+ 'writelock' int(11) DEFAULT '0',
+ 'exclusivelock' int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY ('token'),
+ UNIQUE ('token')
+ );
-CREATE TABLE IF NOT EXISTS `log` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `timestamp` int(11) NOT NULL,
- `user` varchar(250) NOT NULL,
- `type` int(11) NOT NULL,
- `message` varchar(250) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
+CREATE TABLE 'log' (
+ 'timestamp' int(11) NOT NULL,
+ 'user' varchar(250) NOT NULL,
+ 'type' int(11) NOT NULL,
+ 'message' varchar(250) NOT NULL
+);
-CREATE TABLE IF NOT EXISTS `properties` (
- `path` varchar(255) NOT NULL DEFAULT '',
- `name` varchar(120) NOT NULL DEFAULT '',
- `ns` varchar(120) NOT NULL DEFAULT 'DAV:',
- `value` text,
- PRIMARY KEY (`path`,`name`,`ns`),
- KEY `path` (`path`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-";
+CREATE TABLE 'properties' (
+ 'path' varchar(255) NOT NULL DEFAULT '',
+ 'name' varchar(120) NOT NULL DEFAULT '',
+ 'ns' varchar(120) NOT NULL DEFAULT 'DAV:',
+ 'value' text,
+ PRIMARY KEY ('path','name','ns')
+);";
OC_DB::multiquery($query);
}
}
?>
+
+
diff --git a/inc/templates/configform.php b/inc/templates/configform.php
index 8a65474b44b..5d44d8f2795 100755
--- a/inc/templates/configform.php
+++ b/inc/templates/configform.php
@@ -1,16 +1,9 @@
<?php
global $FIRSTRUN;
-if(!isset($createDB)) $createDB=true;
if(!isset($fillDB)) $fillDB=true;
?>
-<script type="text/javascript">
-function showDBAdmin(){
-var show=document.getElementById('dbCreate').checked;
-document.getElementById('dbAdminUser').style.display=(show)?'table-row':'none';
-document.getElementById('dbAdminPwd').style.display=(show)?'table-row':'none';
-}
</script>
-<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
+<form method="post" enctype="multipart/form-data">
<table cellpadding="5" cellspacing="5" border="0" class="loginform">
<?php
if(!$FIRSTRUN){?>
@@ -19,20 +12,12 @@ document.getElementById('dbAdminPwd').style.display=(show)?'table-row':'none';
}
?>
<tr><td>admin login:</td><td><input type="text" name="adminlogin" size="30" class="formstyle" value="<?php echo($CONFIG_ADMINLOGIN);?>"></input></td></tr>
-<tr><td>admin password:</td><td><input type="password" name="adminpassword" size="30" class="formstyle"></input></td><td>(leave empty to keep current password)</td></tr>
+<tr><td>admin password:</td><td><input type="password" name="adminpassword" size="30" class="formstyle"></input></td><td>(leave empty to keep current pass
<tr><td>retype admin password:</td><td><input type="password" name="adminpassword2" size="30" class="formstyle"></input></td></tr>
-<tr><td>data directory:</td><td><input type="text" name="datadirectory" size="30" class="formstyle" value="<?php echo($CONFIG_DATADIRECTORY);?>"></input></td></tr>
-<tr><td>force ssl:</td><td><input type="checkbox" name="forcessl" size="30" class="formstyle" value='<?php echo($CONFIG_HTTPFORCESSL);?>'></input></td></tr>
+<tr><td>data directory:</td><td><input type="text" name="datadirectory" size="30" class="formstyle" value="<?php echo($CONFIG_DATADIRECTORY);?>"></input><
+<tr><td>force ssl:</td><td><input type="checkbox" name="forcessl" size="30" class="formstyle" value='<?php echo($CONFIG_HTTPFORCESSL);?>'></input></td></t
<tr><td>date format:</td><td><input type="text" name="dateformat" size="30" class="formstyle" value='<?php echo($CONFIG_DATEFORMAT);?>'></input></td></tr>
-<tr><td>database host:</td><td><input type="text" name="dbhost" size="30" class="formstyle" value='<?php echo($CONFIG_DBHOST);?>'></input></td></tr>
<tr><td>database name:</td><td><input type="text" name="dbname" size="30" class="formstyle" value='<?php echo($CONFIG_DBNAME);?>'></input></td></tr>
-<tr><td>database user:</td><td><input type="text" name="dbuser" size="30" class="formstyle" value='<?php echo($CONFIG_DBUSER);?>'></input></td></tr>
-<tr><td>database password:</td><td><input type="password" name="dbpassword" size="30" class="formstyle" value='<?php echo($CONFIG_DBPASSWORD);?>'></input></td></tr>
-<tr><td>retype database password:</td><td><input type="password" name="dbpassword2" size="30" class="formstyle" value='<?php echo($CONFIG_DBPASSWORD);?>'></input></td></tr>
-<tr><td>create database and user:</td><td><input id='dbCreate' type="checkbox" name="createdatabase" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'checked'; ?> onchange='showDBAdmin()'></input></td></tr>
-<tr id='dbAdminUser'><td>database administrative user:</td><td><input type="text" name="dbadminuser" size="30" class="formstyle" value='root'></input></td></tr>
-<tr id='dbAdminPwd'><td>database administrative password:</td><td><input type="password" name="dbadminpwd" size="30" class="formstyle" value=''></input></td></tr>
-<tr><td>automaticly fill initial database:</td><td><input type="checkbox" name="filldb" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'checked'; ?>></input></td></tr>
+<tr><td>automaticly fill initial database:</td><td><input type="checkbox" name="filldb" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'ch
<tr><td></td><td><input type="submit" name="set_config" alt="save" value="save" class="formstyle" /></td></tr>
</table></form>
-<script type="text/javascript">showDBAdmin()</script>