summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2012-09-26 10:48:30 +0200
committerBjörn Schießle <schiessle@owncloud.com>2012-09-26 10:48:30 +0200
commitc3c6e52104d7a3979b3a67069652e4d08e5b781e (patch)
treed4df5e4fed4e34a16b2d53fe4be1d9edb79b61c1
parent25499644e3ee38a8417b33b8817655ee1b0cf18d (diff)
downloadnextcloud-server-c3c6e52104d7a3979b3a67069652e4d08e5b781e.tar.gz
nextcloud-server-c3c6e52104d7a3979b3a67069652e4d08e5b781e.zip
- take webdav namespace for properties into account
- change update routine to add the namesapce to all stored properties
-rw-r--r--apps/files/appinfo/update.php20
-rw-r--r--apps/files/appinfo/version2
-rw-r--r--lib/connector/sabre/node.php4
3 files changed, 14 insertions, 12 deletions
diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php
index 35008e345b9..d963b754772 100644
--- a/apps/files/appinfo/update.php
+++ b/apps/files/appinfo/update.php
@@ -1,14 +1,16 @@
<?php
-// fix webdav properties, remove namespace information between curly bracket (update from OC4 to OC5)
-$installedVersion=OCP\Config::getAppValue('files', 'installed_version');
-if (version_compare($installedVersion, '1.1.4', '<')) {
- $query = OC_DB::prepare( "SELECT `propertyname`, `propertypath`, `userid` FROM `*PREFIX*properties`" );
- $result = $query->execute();
- while( $row = $result->fetchRow()) {
- $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyname` = ? WHERE `userid` = ? AND `propertypath` = ?' );
- $query->execute( array( preg_replace("/^{.*}/", "", $row["propertyname"]),$row["userid"], $row["propertypath"] ));
- }
+// fix webdav properties,add namespace in front of the property, update for OC4.5
+$installedVersion=OCP\Config::getAppValue('files', 'installed_version');
+if (version_compare($installedVersion, '1.1.6', '<')) {
+ $query = OC_DB::prepare( "SELECT propertyname, propertypath, userid FROM `*PREFIX*properties`" );
+ $result = $query->execute();
+ while( $row = $result->fetchRow()){
+ if ( $row["propertyname"][0] != '{' ) {
+ $query = OC_DB::prepare( 'UPDATE *PREFIX*properties SET propertyname = ? WHERE userid = ? AND propertypath = ?' );
+ $query->execute( array( '{DAV:}' + $row["propertyname"], $row["userid"], $row["propertypath"] ));
+ }
+ }
}
//update from OC 3
diff --git a/apps/files/appinfo/version b/apps/files/appinfo/version
index e25d8d9f357..0664a8fd291 100644
--- a/apps/files/appinfo/version
+++ b/apps/files/appinfo/version
@@ -1 +1 @@
-1.1.5
+1.1.6
diff --git a/lib/connector/sabre/node.php b/lib/connector/sabre/node.php
index ecbbef81292..e5c76a64911 100644
--- a/lib/connector/sabre/node.php
+++ b/lib/connector/sabre/node.php
@@ -23,6 +23,7 @@
abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IProperties {
const GETETAG_PROPERTYNAME = '{DAV:}getetag';
+ const LASTMODIFIED_PROPERTYNAME = '{DAV:}lastmodified';
/**
* The path to the current node
@@ -142,7 +143,6 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
public function updateProperties($properties) {
$existing = $this->getProperties(array());
foreach($properties as $propertyName => $propertyValue) {
- $propertyName = preg_replace("/^{.*}/", "", $propertyName); // remove leading namespace from property name
// If it was null, we need to delete the property
if (is_null($propertyValue)) {
if(array_key_exists( $propertyName, $existing )) {
@@ -151,7 +151,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
}
}
else {
- if( strcmp( $propertyName, "lastmodified") === 0) {
+ if( strcmp( $propertyName, self::LASTMODIFIED_PROPERTYNAME) === 0) {
$this->touch($propertyValue);
} else {
if(!array_key_exists( $propertyName, $existing )) {