From c455cb989b8aa5c69192f825c9815058d00ba693 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Fri, 25 Oct 2013 13:20:59 +0200
Subject: [PATCH] add header 'OC-FileId' on PUT

---
 lib/private/connector/sabre/filesplugin.php | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/lib/private/connector/sabre/filesplugin.php b/lib/private/connector/sabre/filesplugin.php
index ac781825672..89444cb8d18 100644
--- a/lib/private/connector/sabre/filesplugin.php
+++ b/lib/private/connector/sabre/filesplugin.php
@@ -40,6 +40,8 @@ class OC_Connector_Sabre_FilesPlugin extends Sabre_DAV_ServerPlugin
 
 		$this->server = $server;
 		$this->server->subscribeEvent('beforeGetProperties', array($this, 'beforeGetProperties'));
+		$this->server->subscribeEvent('afterCreateFile', array($this, 'sendFileIdHeader'));
+		$this->server->subscribeEvent('afterWriteContent', array($this, 'sendFileIdHeader'));
 	}
 
 	/**
@@ -70,4 +72,18 @@ class OC_Connector_Sabre_FilesPlugin extends Sabre_DAV_ServerPlugin
 
 	}
 
+	/**
+	 * @param $filePath
+	 * @param Sabre_DAV_INode $node
+	 * @throws Sabre_DAV_Exception_BadRequest
+	 */
+	public function sendFileIdHeader($filePath, Sabre_DAV_INode $node = null) {
+		if ($node instanceof OC_Connector_Sabre_Node) {
+			$fileId = $node->getFileId();
+			if (!is_null($fileId)) {
+				$this->server->httpResponse->setHeader('OC-FileId', $fileId);
+			}
+		}
+	}
+
 }
-- 
GitLab