diff options
author | Björn Schießle <schiessle@owncloud.com> | 2012-09-26 10:48:30 +0200 |
---|---|---|
committer | Björn Schießle <schiessle@owncloud.com> | 2012-09-26 10:48:30 +0200 |
commit | c3c6e52104d7a3979b3a67069652e4d08e5b781e (patch) | |
tree | d4df5e4fed4e34a16b2d53fe4be1d9edb79b61c1 | |
parent | 25499644e3ee38a8417b33b8817655ee1b0cf18d (diff) | |
download | nextcloud-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.php | 20 | ||||
-rw-r--r-- | apps/files/appinfo/version | 2 | ||||
-rw-r--r-- | lib/connector/sabre/node.php | 4 |
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 )) { |