HOR-1472
remove webdav PROPPATCH function HOR-1472
This commit is contained in:
@@ -63,12 +63,6 @@ pake_task('pack-plugin', 'project_exists');
|
|||||||
pake_desc("generate basic CRUD files for an existing class\n args: <class-name> <table-name> <plugin-name>");
|
pake_desc("generate basic CRUD files for an existing class\n args: <class-name> <table-name> <plugin-name>");
|
||||||
pake_task('propel-build-crud', 'project_exists');
|
pake_task('propel-build-crud', 'project_exists');
|
||||||
|
|
||||||
pake_desc("backup a workspace\n args: [-c|--compress] <workspace> [<backup-name>|<backup-filename>]");
|
|
||||||
pake_task('workspace-backup', 'project_exists');
|
|
||||||
|
|
||||||
pake_desc("restore a previously backed-up workspace\n args: [-o|--overwrite] <filename> <workspace>");
|
|
||||||
pake_task('workspace-restore', 'project_exists');
|
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
pake_desc("check standard code\n args: <directory>");
|
pake_desc("check standard code\n args: <directory>");
|
||||||
pake_task('check-standard-code', 'project_exists' );
|
pake_task('check-standard-code', 'project_exists' );
|
||||||
@@ -2108,25 +2102,6 @@ function run_workspace_backup($task, $args) {
|
|||||||
if (!isset($gzipPath))
|
if (!isset($gzipPath))
|
||||||
$tar->_compress = $compress;
|
$tar->_compress = $compress;
|
||||||
|
|
||||||
/*** WORKFLOW DATABASE BACKUP ***/
|
|
||||||
$dbSettings = getDataBaseConfiguration($configuration['datasources']['workflow']['connection']);
|
|
||||||
backupDB($dbOpt[0], $dbOpt[1], $dbOpt[2], $dbSettings['dbname'], $tmpDir);
|
|
||||||
printf("Copying folder: %s \n", pakeColor::colorize( $tmpDir, 'INFO'));
|
|
||||||
backupAddTarFolder( $tar, $tmpDir . $dbSettings['dbname'] . PATH_SEP, $tmpDir );
|
|
||||||
|
|
||||||
/*** RBAC DATABASE BACKUP ***/
|
|
||||||
$dbSettings = getDataBaseConfiguration($configuration['datasources']['rbac']['connection']);
|
|
||||||
backupDB($dbOpt[0], $dbOpt[1], $dbOpt[2], $dbSettings['dbname'], $tmpDir);
|
|
||||||
printf("Copying folder: %s \n", pakeColor::colorize( $tmpDir, 'INFO'));
|
|
||||||
backupAddTarFolder( $tar, $tmpDir . $dbSettings['dbname'] . PATH_SEP, $tmpDir );
|
|
||||||
|
|
||||||
/*** RP DATABASE BACKUP ***/
|
|
||||||
$dbSettings = getDataBaseConfiguration($configuration['datasources']['rp']['connection']);
|
|
||||||
backupDB($dbOpt[0], $dbOpt[1], $dbOpt[2], $dbSettings['dbname'], $tmpDir);
|
|
||||||
printf("Copying folder: %s \n", pakeColor::colorize( $tmpDir, 'INFO'));
|
|
||||||
backupAddTarFolder( $tar, $tmpDir . $dbSettings['dbname'] . PATH_SEP, $tmpDir );
|
|
||||||
|
|
||||||
|
|
||||||
$pathSharedBase = PATH_DATA . 'sites' . PATH_SEP . $workspace . PATH_SEP;
|
$pathSharedBase = PATH_DATA . 'sites' . PATH_SEP . $workspace . PATH_SEP;
|
||||||
printf("copying folder: %s \n", pakeColor::colorize($pathSharedBase, 'INFO'));
|
printf("copying folder: %s \n", pakeColor::colorize($pathSharedBase, 'INFO'));
|
||||||
backupAddTarFolder($tar, $pathSharedBase, PATH_DATA . 'sites');
|
backupAddTarFolder($tar, $pathSharedBase, PATH_DATA . 'sites');
|
||||||
@@ -2167,17 +2142,6 @@ function run_workspace_backup($task, $args) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function backupDB($host, $user, $passwd, $dbname, $tmpDir){
|
|
||||||
$oDbMaintainer = new DataBaseMaintenance($host, $user, $passwd);
|
|
||||||
//stablishing connetion with host
|
|
||||||
$oDbMaintainer->connect($dbname);
|
|
||||||
//set temporal dir. for maintenance for oDbMaintainer object
|
|
||||||
$oDbMaintainer->setTempDir($tmpDir . $dbname . PATH_SEP);
|
|
||||||
//create the backup
|
|
||||||
$oDbMaintainer->backupDataBaseSchema($oDbMaintainer->getTempDir() . "$dbname.sql");
|
|
||||||
$oDbMaintainer->backupSqlData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse and get the database parameters from a dns connection
|
* Parse and get the database parameters from a dns connection
|
||||||
* dsn sample mysql://wf_os:w9j14dkf5v0m@localhost:3306/wf_os?encoding=utf8
|
* dsn sample mysql://wf_os:w9j14dkf5v0m@localhost:3306/wf_os?encoding=utf8
|
||||||
|
|||||||
@@ -308,23 +308,6 @@ class DataBaseMaintenance
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* backupSqlData
|
|
||||||
*
|
|
||||||
* @return boolean true or false
|
|
||||||
*/
|
|
||||||
function backupSqlData ()
|
|
||||||
{
|
|
||||||
$aTables = $this->getTablesList();
|
|
||||||
foreach ($aTables as $table) {
|
|
||||||
$fsize = $this->dumpSqlInserts( $table );
|
|
||||||
$file = basename( $this->outfile );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* restoreAllData
|
* restoreAllData
|
||||||
*
|
*
|
||||||
@@ -419,67 +402,6 @@ class DataBaseMaintenance
|
|||||||
$mysqli->close();
|
$mysqli->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function lockTables ()
|
|
||||||
{
|
|
||||||
$aTables = $this->getTablesList();
|
|
||||||
if (empty( $aTables ))
|
|
||||||
return false;
|
|
||||||
printf( "%-70s", "LOCK TABLES" );
|
|
||||||
if (@mysql_query( 'LOCK TABLES ' . implode( ' READ, ', $aTables ) . ' READ; ' )) {
|
|
||||||
echo " [OK]\n";
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
echo "[FAILED]\n" . mysql_error() . "\n";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function unlockTables ()
|
|
||||||
{
|
|
||||||
printf( "%-70s", "UNLOCK TABLES" );
|
|
||||||
if (@mysql_query( "UNLOCK TABLES;" )) {
|
|
||||||
echo " [OK]\n";
|
|
||||||
} else {
|
|
||||||
echo "[FAILED]\n" . mysql_error() . "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* dumpSqlInserts
|
|
||||||
*
|
|
||||||
* @param string $table
|
|
||||||
*
|
|
||||||
* @return integer $bytesSaved;
|
|
||||||
*/
|
|
||||||
function dumpSqlInserts ($table)
|
|
||||||
{
|
|
||||||
|
|
||||||
$bytesSaved = 0;
|
|
||||||
$result = @mysql_query( 'SELECT * FROM `'.$table.'`' );
|
|
||||||
|
|
||||||
$num_rows = mysql_num_rows( $result );
|
|
||||||
$num_fields = mysql_num_fields( $result );
|
|
||||||
|
|
||||||
$data = "";
|
|
||||||
for ($i = 0; $i < $num_rows; $i ++) {
|
|
||||||
|
|
||||||
$row = mysql_fetch_object( $result );
|
|
||||||
$data .= "INSERT INTO `$table` VALUES (";
|
|
||||||
|
|
||||||
for ($x = 0; $x < $num_fields; $x ++) {
|
|
||||||
$field_name = mysql_field_name( $result, $x );
|
|
||||||
|
|
||||||
$data .= ($row->$field_name === null) ? 'NULL' : "'" . mysql_real_escape_string( $row->$field_name ) . "'";
|
|
||||||
$data .= ($x < ($num_fields - 1)) ? ", " : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$data .= ");\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
printf( "%-59s%20s", "Dump of table $table", strlen( $data ) . " Bytes Saved\n" );
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* backupDataBaseSchema
|
* backupDataBaseSchema
|
||||||
*
|
*
|
||||||
@@ -638,23 +560,4 @@ class DataBaseMaintenance
|
|||||||
$str = preg_replace( "/\#[\w\W]*\\n/", '', $str );
|
$str = preg_replace( "/\#[\w\W]*\\n/", '', $str );
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
// Sample to use
|
|
||||||
$oDbMaintainer = new DataBaseMaintenance('localhost', 'root', 'atopml2005');
|
|
||||||
$oDbMaintainer->setTempDir('/home/erik/backs/');
|
|
||||||
$oDbMaintainer->setDbName('rb_os');
|
|
||||||
$oDbMaintainer->connect();
|
|
||||||
$oDbMaintainer->backupDataBaseSchema('/home/erik/backs/schema_os.sql');
|
|
||||||
$oDbMaintainer->backupSqlData();
|
|
||||||
$oDbMaintainer->createDb('neyek12', true);
|
|
||||||
|
|
||||||
$o2 = new DataBaseMaintenance('localhost', 'root', 'atopml2005');
|
|
||||||
$o2->setTempDir('/home/erik/backs/');
|
|
||||||
$o2->setDbName('neyek12');
|
|
||||||
$o2->connect();
|
|
||||||
|
|
||||||
$o2->restoreFromSql('/home/erik/backs/schema_os.sql');
|
|
||||||
$o2->restoreAllData('sql');
|
|
||||||
*/
|
|
||||||
@@ -99,10 +99,10 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
FROM pg_attribute att
|
FROM pg_attribute att
|
||||||
JOIN pg_type ty ON ty.oid=att.atttypid
|
JOIN pg_type ty ON ty.oid=att.atttypid
|
||||||
LEFT OUTER JOIN pg_attrdef def ON adrelid=att.attrelid AND adnum=att.attnum
|
LEFT OUTER JOIN pg_attrdef def ON adrelid=att.attrelid AND adnum=att.attnum
|
||||||
WHERE att.attrelid = %d AND att.attnum > 0
|
WHERE att.attrelid = $1 AND att.attnum > 0
|
||||||
AND att.attisdropped IS FALSE
|
AND att.attisdropped IS FALSE
|
||||||
ORDER BY att.attnum";
|
ORDER BY att.attnum";
|
||||||
$result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid));
|
$result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid);
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
throw new SQLException("Could not list fields for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
throw new SQLException("Could not list fields for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
||||||
@@ -235,9 +235,9 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
INNER JOIN pg_type b ON b.oid = CASE WHEN d.typndims > 0 then d.typelem ELSE d.typbasetype END
|
INNER JOIN pg_type b ON b.oid = CASE WHEN d.typndims > 0 then d.typelem ELSE d.typbasetype END
|
||||||
WHERE
|
WHERE
|
||||||
d.typtype = 'd'
|
d.typtype = 'd'
|
||||||
AND d.typname = '%s'
|
AND d.typname = '$1'
|
||||||
ORDER BY d.typname";
|
ORDER BY d.typname";
|
||||||
$result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $strDomain));
|
$result = $this->executePgQuery($this->conn->getResource(), $query, $strDomain);
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
throw new SQLException("Query for domain [" . $strDomain . "] failed.", pg_last_error($this->conn->getResource()));
|
throw new SQLException("Query for domain [" . $strDomain . "] failed.", pg_last_error($this->conn->getResource()));
|
||||||
@@ -291,11 +291,11 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
LEFT JOIN pg_catalog.pg_attribute a2 ON a2.attrelid = ct.conrelid
|
LEFT JOIN pg_catalog.pg_attribute a2 ON a2.attrelid = ct.conrelid
|
||||||
WHERE
|
WHERE
|
||||||
contype='f'
|
contype='f'
|
||||||
AND conrelid = %d
|
AND conrelid = $1
|
||||||
AND a2.attnum = ct.conkey[1]
|
AND a2.attnum = ct.conkey[1]
|
||||||
AND a1.attnum = ct.confkey[1]
|
AND a1.attnum = ct.confkey[1]
|
||||||
ORDER BY conname";
|
ORDER BY conname";
|
||||||
$result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid));
|
$result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
throw new SQLException("Could not list foreign keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
throw new SQLException("Could not list foreign keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
||||||
}
|
}
|
||||||
@@ -379,9 +379,9 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
indisunique
|
indisunique
|
||||||
FROM pg_index idx
|
FROM pg_index idx
|
||||||
JOIN pg_class cls ON cls.oid=indexrelid
|
JOIN pg_class cls ON cls.oid=indexrelid
|
||||||
WHERE indrelid = %d AND NOT indisprimary
|
WHERE indrelid = $1 AND NOT indisprimary
|
||||||
ORDER BY cls.relname";
|
ORDER BY cls.relname";
|
||||||
$result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid));
|
$result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid);
|
||||||
|
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
@@ -411,9 +411,9 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
|
|
||||||
$query = "SELECT a.attname
|
$query = "SELECT a.attname
|
||||||
FROM pg_catalog.pg_class c JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid
|
FROM pg_catalog.pg_class c JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid
|
||||||
WHERE c.oid = '%s' AND a.attnum = %d AND NOT a.attisdropped
|
WHERE c.oid = '$1' AND a.attnum = $2 AND NOT a.attisdropped
|
||||||
ORDER BY a.attnum";
|
ORDER BY a.attnum";
|
||||||
$result2 = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid, $intColNum));
|
$result2 = $this->executePgQuery($this->conn->getResource(), $query, array($this->oid, $intColNum));
|
||||||
if (!$result2)
|
if (!$result2)
|
||||||
{
|
{
|
||||||
throw new SQLException("Could not list indexes keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
throw new SQLException("Could not list indexes keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
||||||
@@ -454,9 +454,9 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
indisunique
|
indisunique
|
||||||
FROM pg_index idx
|
FROM pg_index idx
|
||||||
JOIN pg_class cls ON cls.oid=indexrelid
|
JOIN pg_class cls ON cls.oid=indexrelid
|
||||||
WHERE indrelid = %s AND indisprimary
|
WHERE indrelid = $1 AND indisprimary
|
||||||
ORDER BY cls.relname";
|
ORDER BY cls.relname";
|
||||||
$result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid));
|
$result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
throw new SQLException("Could not list primary keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
throw new SQLException("Could not list primary keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
||||||
}
|
}
|
||||||
@@ -483,9 +483,9 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
|
|
||||||
$query = "SELECT a.attname
|
$query = "SELECT a.attname
|
||||||
FROM pg_catalog.pg_class c JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid
|
FROM pg_catalog.pg_class c JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid
|
||||||
WHERE c.oid = '%s' AND a.attnum = %d AND NOT a.attisdropped
|
WHERE c.oid = '$1' AND a.attnum = $2 AND NOT a.attisdropped
|
||||||
ORDER BY a.attnum";
|
ORDER BY a.attnum";
|
||||||
$result2 = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid, $intColNum));
|
$result2 = $this->executePgQuery($this->conn->getResource(), $query, array($this->oid, $intColNum));
|
||||||
if (!$result2)
|
if (!$result2)
|
||||||
{
|
{
|
||||||
throw new SQLException("Could not list indexes keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
throw new SQLException("Could not list indexes keys for table: " . $this->name, pg_last_error($this->conn->getResource()));
|
||||||
@@ -500,8 +500,8 @@ class PgSQLTableInfo extends TableInfo {
|
|||||||
$this->pkLoaded = true;
|
$this->pkLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function executePgQuery($conn, $query){
|
function executePgQuery($conn, $var, $values = array()){
|
||||||
$result = pg_query($conn, $query);
|
$result = pg_query_params($conn, $var, $values);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -123,8 +123,8 @@ class SQLiteTableInfo extends TableInfo {
|
|||||||
$this->indexes[$name] = new IndexInfo($name);
|
$this->indexes[$name] = new IndexInfo($name);
|
||||||
|
|
||||||
// get columns for that index
|
// get columns for that index
|
||||||
$query = "PRAGMA index_info('".$name."')";
|
$var = "PRAGMA index_info('".$name."')";
|
||||||
$res2 = sqlite_query($this->conn->getResource(), $filter->preventSqlInjection($query));
|
$res2 = sqlite_query($this->conn->getResource(), $var);
|
||||||
while($row2 = sqlite_fetch_array($res2, SQLITE_ASSOC)) {
|
while($row2 = sqlite_fetch_array($res2, SQLITE_ASSOC)) {
|
||||||
$colname = $row2['name'];
|
$colname = $row2['name'];
|
||||||
$this->indexes[$name]->addColumn($this->columns[ $colname ]);
|
$this->indexes[$name]->addColumn($this->columns[ $colname ]);
|
||||||
|
|||||||
@@ -617,54 +617,6 @@
|
|||||||
return ($new && !$existing_col) ? "201 Created" : "204 No Content";
|
return ($new && !$existing_col) ? "201 Created" : "204 No Content";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* PROPPATCH method handler
|
|
||||||
*
|
|
||||||
* @param array general parameter passing array
|
|
||||||
* @return bool true on success
|
|
||||||
*/
|
|
||||||
function PROPPATCH(&$options)
|
|
||||||
{
|
|
||||||
global $prefs, $tab;
|
|
||||||
|
|
||||||
$msg = "";
|
|
||||||
|
|
||||||
$path = $options["path"];
|
|
||||||
|
|
||||||
$dir = dirname($path)."/";
|
|
||||||
$base = basename($path);
|
|
||||||
|
|
||||||
if (!class_exists('G')) {
|
|
||||||
$realdocuroot = str_replace( '\\', '/', $_SERVER['DOCUMENT_ROOT'] );
|
|
||||||
$docuroot = explode( '/', $realdocuroot );
|
|
||||||
array_pop( $docuroot );
|
|
||||||
$pathhome = implode( '/', $docuroot ) . '/';
|
|
||||||
array_pop( $docuroot );
|
|
||||||
$pathTrunk = implode( '/', $docuroot ) . '/';
|
|
||||||
require_once($pathTrunk.'gulliver/system/class.g.php');
|
|
||||||
}
|
|
||||||
G::LoadSystem('inputfilter');
|
|
||||||
$filter = new InputFilter();
|
|
||||||
|
|
||||||
foreach($options["props"] as $key => $prop) {
|
|
||||||
if ($prop["ns"] == "DAV:") {
|
|
||||||
$options["props"][$key]['status'] = "403 Forbidden";
|
|
||||||
} else {
|
|
||||||
if (isset($prop["val"])) {
|
|
||||||
$query = "REPLACE INTO properties SET path = '%s', name = '%s', ns= '%s', value = '%s'";
|
|
||||||
$query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns'],$prop['val']));
|
|
||||||
error_log($query);
|
|
||||||
} else {
|
|
||||||
$query = "DELETE FROM properties WHERE path = '%s' AND name = '%s' AND ns = '%s'";
|
|
||||||
$query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns']));
|
|
||||||
}
|
|
||||||
mysql_query($query);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LOCK method handler
|
* LOCK method handler
|
||||||
|
|||||||
@@ -886,44 +886,6 @@ class ProcessMakerWebDav extends HTTP_WebDAV_Server
|
|||||||
return ($new && !$existing_col) ? "201 Created" : "204 No Content";
|
return ($new && !$existing_col) ? "201 Created" : "204 No Content";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* PROPPATCH method handler
|
|
||||||
*
|
|
||||||
* @param array general parameter passing array
|
|
||||||
* @return bool true on success
|
|
||||||
*/
|
|
||||||
public function PROPPATCH(&$options)
|
|
||||||
{
|
|
||||||
global $prefs, $tab;
|
|
||||||
|
|
||||||
$msg = "";
|
|
||||||
|
|
||||||
$path = $options["path"];
|
|
||||||
|
|
||||||
$dir = dirname($path) . "/";
|
|
||||||
$base = basename($path);
|
|
||||||
|
|
||||||
G::LoadSystem('inputfilter');
|
|
||||||
$filter = new InputFilter();
|
|
||||||
|
|
||||||
foreach ($options["props"] as $key => $prop) {
|
|
||||||
if ($prop["ns"] == "DAV:") {
|
|
||||||
$options["props"][$key]['status'] = "403 Forbidden";
|
|
||||||
} else {
|
|
||||||
if (isset($prop["val"])) {
|
|
||||||
$query = "REPLACE INTO properties SET path = '%s', name = '%s', ns= '%s', value = '%s'";
|
|
||||||
$query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns'],$prop['val']));
|
|
||||||
error_log($query);
|
|
||||||
} else {
|
|
||||||
$query = "DELETE FROM properties WHERE path = '%s' AND name = '%s' AND ns = '%s'";
|
|
||||||
$query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns']));
|
|
||||||
}
|
|
||||||
mysql_query($query);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LOCK method handler
|
* LOCK method handler
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1136,10 +1136,8 @@ class workspaceTools
|
|||||||
$oDbMaintainer = new DataBaseMaintenance($dbInfo["host"], $dbInfo["user"], $dbInfo["pass"]);
|
$oDbMaintainer = new DataBaseMaintenance($dbInfo["host"], $dbInfo["user"], $dbInfo["pass"]);
|
||||||
CLI::logging("Saving database {$dbInfo["name"]}\n");
|
CLI::logging("Saving database {$dbInfo["name"]}\n");
|
||||||
$oDbMaintainer->connect($dbInfo["name"]);
|
$oDbMaintainer->connect($dbInfo["name"]);
|
||||||
$oDbMaintainer->lockTables();
|
|
||||||
$oDbMaintainer->setTempDir($path . "/");
|
$oDbMaintainer->setTempDir($path . "/");
|
||||||
$oDbMaintainer->backupDataBase($oDbMaintainer->getTempDir() . $dbInfo["name"] . ".sql");
|
$oDbMaintainer->backupDataBase($oDbMaintainer->getTempDir() . $dbInfo["name"] . ".sql");
|
||||||
$oDbMaintainer->unlockTables();
|
|
||||||
$dbNames[] = $dbInfo;
|
$dbNames[] = $dbInfo;
|
||||||
}
|
}
|
||||||
return $dbNames;
|
return $dbNames;
|
||||||
|
|||||||
Reference in New Issue
Block a user