Completed
Pull Request — master (#5231)
by Morris
16:38
created
apps/dav/lib/Connector/Sabre/AppEnabledPlugin.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -34,58 +34,58 @@
 block discarded – undo
34 34
  */
35 35
 class AppEnabledPlugin extends ServerPlugin {
36 36
 
37
-	/**
38
-	 * Reference to main server object
39
-	 *
40
-	 * @var \Sabre\DAV\Server
41
-	 */
42
-	private $server;
37
+    /**
38
+     * Reference to main server object
39
+     *
40
+     * @var \Sabre\DAV\Server
41
+     */
42
+    private $server;
43 43
 
44
-	/**
45
-	 * @var string
46
-	 */
47
-	private $app;
44
+    /**
45
+     * @var string
46
+     */
47
+    private $app;
48 48
 
49
-	/**
50
-	 * @var \OCP\App\IAppManager
51
-	 */
52
-	private $appManager;
49
+    /**
50
+     * @var \OCP\App\IAppManager
51
+     */
52
+    private $appManager;
53 53
 
54
-	/**
55
-	 * @param string $app
56
-	 * @param \OCP\App\IAppManager $appManager
57
-	 */
58
-	public function __construct($app, IAppManager $appManager) {
59
-		$this->app = $app;
60
-		$this->appManager = $appManager;
61
-	}
54
+    /**
55
+     * @param string $app
56
+     * @param \OCP\App\IAppManager $appManager
57
+     */
58
+    public function __construct($app, IAppManager $appManager) {
59
+        $this->app = $app;
60
+        $this->appManager = $appManager;
61
+    }
62 62
 
63
-	/**
64
-	 * This initializes the plugin.
65
-	 *
66
-	 * This function is called by \Sabre\DAV\Server, after
67
-	 * addPlugin is called.
68
-	 *
69
-	 * This method should set up the required event subscriptions.
70
-	 *
71
-	 * @param \Sabre\DAV\Server $server
72
-	 * @return void
73
-	 */
74
-	public function initialize(\Sabre\DAV\Server $server) {
63
+    /**
64
+     * This initializes the plugin.
65
+     *
66
+     * This function is called by \Sabre\DAV\Server, after
67
+     * addPlugin is called.
68
+     *
69
+     * This method should set up the required event subscriptions.
70
+     *
71
+     * @param \Sabre\DAV\Server $server
72
+     * @return void
73
+     */
74
+    public function initialize(\Sabre\DAV\Server $server) {
75 75
 
76
-		$this->server = $server;
77
-		$this->server->on('beforeMethod', array($this, 'checkAppEnabled'), 30);
78
-	}
76
+        $this->server = $server;
77
+        $this->server->on('beforeMethod', array($this, 'checkAppEnabled'), 30);
78
+    }
79 79
 
80
-	/**
81
-	 * This method is called before any HTTP after auth and checks if the user has access to the app
82
-	 *
83
-	 * @throws \Sabre\DAV\Exception\Forbidden
84
-	 * @return bool
85
-	 */
86
-	public function checkAppEnabled() {
87
-		if (!$this->appManager->isEnabledForUser($this->app)) {
88
-			throw new Forbidden();
89
-		}
90
-	}
80
+    /**
81
+     * This method is called before any HTTP after auth and checks if the user has access to the app
82
+     *
83
+     * @throws \Sabre\DAV\Exception\Forbidden
84
+     * @return bool
85
+     */
86
+    public function checkAppEnabled() {
87
+        if (!$this->appManager->isEnabledForUser($this->app)) {
88
+            throw new Forbidden();
89
+        }
90
+    }
91 91
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php 2 patches
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -35,47 +35,47 @@
 block discarded – undo
35 35
  * @package OCA\DAV\Connector\Sabre
36 36
  */
37 37
 class BlockLegacyClientPlugin extends ServerPlugin {
38
-	/** @var \Sabre\DAV\Server */
39
-	protected $server;
40
-	/** @var IConfig */
41
-	protected $config;
38
+    /** @var \Sabre\DAV\Server */
39
+    protected $server;
40
+    /** @var IConfig */
41
+    protected $config;
42 42
 
43
-	/**
44
-	 * @param IConfig $config
45
-	 */
46
-	public function __construct(IConfig $config) {
47
-		$this->config = $config;
48
-	}
43
+    /**
44
+     * @param IConfig $config
45
+     */
46
+    public function __construct(IConfig $config) {
47
+        $this->config = $config;
48
+    }
49 49
 
50
-	/**
51
-	 * @param \Sabre\DAV\Server $server
52
-	 * @return void
53
-	 */
54
-	public function initialize(\Sabre\DAV\Server $server) {
55
-		$this->server = $server;
56
-		$this->server->on('beforeMethod', [$this, 'beforeHandler'], 200);
57
-	}
50
+    /**
51
+     * @param \Sabre\DAV\Server $server
52
+     * @return void
53
+     */
54
+    public function initialize(\Sabre\DAV\Server $server) {
55
+        $this->server = $server;
56
+        $this->server->on('beforeMethod', [$this, 'beforeHandler'], 200);
57
+    }
58 58
 
59
-	/**
60
-	 * Detects all unsupported clients and throws a \Sabre\DAV\Exception\Forbidden
61
-	 * exception which will result in a 403 to them.
62
-	 * @param RequestInterface $request
63
-	 * @throws \Sabre\DAV\Exception\Forbidden If the client version is not supported
64
-	 */
65
-	public function beforeHandler(RequestInterface $request) {
66
-		$userAgent = $request->getHeader('User-Agent');
67
-		if($userAgent === null) {
68
-			return;
69
-		}
59
+    /**
60
+     * Detects all unsupported clients and throws a \Sabre\DAV\Exception\Forbidden
61
+     * exception which will result in a 403 to them.
62
+     * @param RequestInterface $request
63
+     * @throws \Sabre\DAV\Exception\Forbidden If the client version is not supported
64
+     */
65
+    public function beforeHandler(RequestInterface $request) {
66
+        $userAgent = $request->getHeader('User-Agent');
67
+        if($userAgent === null) {
68
+            return;
69
+        }
70 70
 
71
-		$minimumSupportedDesktopVersion = $this->config->getSystemValue('minimum.supported.desktop.version', '2.0.0');
71
+        $minimumSupportedDesktopVersion = $this->config->getSystemValue('minimum.supported.desktop.version', '2.0.0');
72 72
 
73
-		// Match on the mirall version which is in scheme "Mozilla/5.0 (%1) mirall/%2" or
74
-		// "mirall/%1" for older releases
75
-		preg_match("/(?:mirall\\/)([\d.]+)/i", $userAgent, $versionMatches);
76
-		if(isset($versionMatches[1]) &&
77
-			version_compare($versionMatches[1], $minimumSupportedDesktopVersion) === -1) {
78
-			throw new \Sabre\DAV\Exception\Forbidden('Unsupported client version.');
79
-		}
80
-	}
73
+        // Match on the mirall version which is in scheme "Mozilla/5.0 (%1) mirall/%2" or
74
+        // "mirall/%1" for older releases
75
+        preg_match("/(?:mirall\\/)([\d.]+)/i", $userAgent, $versionMatches);
76
+        if(isset($versionMatches[1]) &&
77
+            version_compare($versionMatches[1], $minimumSupportedDesktopVersion) === -1) {
78
+            throw new \Sabre\DAV\Exception\Forbidden('Unsupported client version.');
79
+        }
80
+    }
81 81
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 	 */
65 65
 	public function beforeHandler(RequestInterface $request) {
66 66
 		$userAgent = $request->getHeader('User-Agent');
67
-		if($userAgent === null) {
67
+		if ($userAgent === null) {
68 68
 			return;
69 69
 		}
70 70
 
@@ -73,7 +73,7 @@  discard block
 block discarded – undo
73 73
 		// Match on the mirall version which is in scheme "Mozilla/5.0 (%1) mirall/%2" or
74 74
 		// "mirall/%1" for older releases
75 75
 		preg_match("/(?:mirall\\/)([\d.]+)/i", $userAgent, $versionMatches);
76
-		if(isset($versionMatches[1]) &&
76
+		if (isset($versionMatches[1]) &&
77 77
 			version_compare($versionMatches[1], $minimumSupportedDesktopVersion) === -1) {
78 78
 			throw new \Sabre\DAV\Exception\Forbidden('Unsupported client version.');
79 79
 		}
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -99,13 +99,13 @@  discard block
 block discarded – undo
99 99
 	 * @return mixed|string
100 100
 	 */
101 101
 	public function getCommentsLink(Node $node) {
102
-		$href =  $this->server->getBaseUri();
102
+		$href = $this->server->getBaseUri();
103 103
 		$entryPoint = strpos($href, '/remote.php/');
104
-		if($entryPoint === false) {
104
+		if ($entryPoint === false) {
105 105
 			// in case we end up somewhere else, unexpectedly.
106 106
 			return null;
107 107
 		}
108
-		$commentsPart = 'dav/comments/files/' . rawurldecode($node->getId());
108
+		$commentsPart = 'dav/comments/files/'.rawurldecode($node->getId());
109 109
 		$href = substr_replace($href, $commentsPart, $entryPoint + strlen('/remote.php/'));
110 110
 		return $href;
111 111
 	}
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
 	 */
120 120
 	public function getUnreadCount(Node $node) {
121 121
 		$user = $this->userSession->getUser();
122
-		if(is_null($user)) {
122
+		if (is_null($user)) {
123 123
 			return null;
124 124
 		}
125 125
 
Please login to merge, or discard this patch.
Indentation   +127 added lines, -127 removed lines patch added patch discarded remove patch
@@ -29,132 +29,132 @@
 block discarded – undo
29 29
 
30 30
 class CommentPropertiesPlugin extends ServerPlugin {
31 31
 
32
-	const PROPERTY_NAME_HREF   = '{http://owncloud.org/ns}comments-href';
33
-	const PROPERTY_NAME_COUNT  = '{http://owncloud.org/ns}comments-count';
34
-	const PROPERTY_NAME_UNREAD = '{http://owncloud.org/ns}comments-unread';
35
-
36
-	/** @var  \Sabre\DAV\Server */
37
-	protected $server;
38
-
39
-	/** @var ICommentsManager */
40
-	private $commentsManager;
41
-
42
-	/** @var IUserSession */
43
-	private $userSession;
44
-
45
-	private $cachedUnreadCount = [];
46
-
47
-	private $cachedFolders = [];
48
-
49
-	public function __construct(ICommentsManager $commentsManager, IUserSession $userSession) {
50
-		$this->commentsManager = $commentsManager;
51
-		$this->userSession = $userSession;
52
-	}
53
-
54
-	/**
55
-	 * This initializes the plugin.
56
-	 *
57
-	 * This function is called by Sabre\DAV\Server, after
58
-	 * addPlugin is called.
59
-	 *
60
-	 * This method should set up the required event subscriptions.
61
-	 *
62
-	 * @param \Sabre\DAV\Server $server
63
-	 * @return void
64
-	 */
65
-	function initialize(\Sabre\DAV\Server $server) {
66
-		$this->server = $server;
67
-		$this->server->on('propFind', array($this, 'handleGetProperties'));
68
-	}
69
-
70
-	/**
71
-	 * Adds tags and favorites properties to the response,
72
-	 * if requested.
73
-	 *
74
-	 * @param PropFind $propFind
75
-	 * @param \Sabre\DAV\INode $node
76
-	 * @return void
77
-	 */
78
-	public function handleGetProperties(
79
-		PropFind $propFind,
80
-		\Sabre\DAV\INode $node
81
-	) {
82
-		if (!($node instanceof File) && !($node instanceof Directory)) {
83
-			return;
84
-		}
85
-
86
-		// need prefetch ?
87
-		if ($node instanceof \OCA\DAV\Connector\Sabre\Directory
88
-			&& $propFind->getDepth() !== 0
89
-			&& !is_null($propFind->getStatus(self::PROPERTY_NAME_UNREAD))
90
-		) {
91
-			$unreadCounts = $this->commentsManager->getNumberOfUnreadCommentsForFolder($node->getId(), $this->userSession->getUser());
92
-			$this->cachedFolders[] = $node->getPath();
93
-			foreach ($unreadCounts as $id => $count) {
94
-				$this->cachedUnreadCount[$id] = $count;
95
-			}
96
-		}
97
-
98
-		$propFind->handle(self::PROPERTY_NAME_COUNT, function() use ($node) {
99
-			return $this->commentsManager->getNumberOfCommentsForObject('files', strval($node->getId()));
100
-		});
101
-
102
-		$propFind->handle(self::PROPERTY_NAME_HREF, function() use ($node) {
103
-			return $this->getCommentsLink($node);
104
-		});
105
-
106
-		$propFind->handle(self::PROPERTY_NAME_UNREAD, function() use ($node) {
107
-			if (isset($this->cachedUnreadCount[$node->getId()])) {
108
-				return $this->cachedUnreadCount[$node->getId()];
109
-			} else {
110
-				list($parentPath,) = \Sabre\Uri\split($node->getPath());
111
-				if ($parentPath === '') {
112
-					$parentPath = '/';
113
-				}
114
-				// if we already cached the folder this file is in we know there are no shares for this file
115
-				if (array_search($parentPath, $this->cachedFolders) === false) {
116
-					return $this->getUnreadCount($node);
117
-				} else {
118
-					return 0;
119
-				}
120
-			}
121
-		});
122
-	}
123
-
124
-	/**
125
-	 * returns a reference to the comments node
126
-	 *
127
-	 * @param Node $node
128
-	 * @return mixed|string
129
-	 */
130
-	public function getCommentsLink(Node $node) {
131
-		$href =  $this->server->getBaseUri();
132
-		$entryPoint = strpos($href, '/remote.php/');
133
-		if($entryPoint === false) {
134
-			// in case we end up somewhere else, unexpectedly.
135
-			return null;
136
-		}
137
-		$commentsPart = 'dav/comments/files/' . rawurldecode($node->getId());
138
-		$href = substr_replace($href, $commentsPart, $entryPoint + strlen('/remote.php/'));
139
-		return $href;
140
-	}
141
-
142
-	/**
143
-	 * returns the number of unread comments for the currently logged in user
144
-	 * on the given file or directory node
145
-	 *
146
-	 * @param Node $node
147
-	 * @return Int|null
148
-	 */
149
-	public function getUnreadCount(Node $node) {
150
-		$user = $this->userSession->getUser();
151
-		if(is_null($user)) {
152
-			return null;
153
-		}
154
-
155
-		$lastRead = $this->commentsManager->getReadMark('files', strval($node->getId()), $user);
156
-
157
-		return $this->commentsManager->getNumberOfCommentsForObject('files', strval($node->getId()), $lastRead);
158
-	}
32
+    const PROPERTY_NAME_HREF   = '{http://owncloud.org/ns}comments-href';
33
+    const PROPERTY_NAME_COUNT  = '{http://owncloud.org/ns}comments-count';
34
+    const PROPERTY_NAME_UNREAD = '{http://owncloud.org/ns}comments-unread';
35
+
36
+    /** @var  \Sabre\DAV\Server */
37
+    protected $server;
38
+
39
+    /** @var ICommentsManager */
40
+    private $commentsManager;
41
+
42
+    /** @var IUserSession */
43
+    private $userSession;
44
+
45
+    private $cachedUnreadCount = [];
46
+
47
+    private $cachedFolders = [];
48
+
49
+    public function __construct(ICommentsManager $commentsManager, IUserSession $userSession) {
50
+        $this->commentsManager = $commentsManager;
51
+        $this->userSession = $userSession;
52
+    }
53
+
54
+    /**
55
+     * This initializes the plugin.
56
+     *
57
+     * This function is called by Sabre\DAV\Server, after
58
+     * addPlugin is called.
59
+     *
60
+     * This method should set up the required event subscriptions.
61
+     *
62
+     * @param \Sabre\DAV\Server $server
63
+     * @return void
64
+     */
65
+    function initialize(\Sabre\DAV\Server $server) {
66
+        $this->server = $server;
67
+        $this->server->on('propFind', array($this, 'handleGetProperties'));
68
+    }
69
+
70
+    /**
71
+     * Adds tags and favorites properties to the response,
72
+     * if requested.
73
+     *
74
+     * @param PropFind $propFind
75
+     * @param \Sabre\DAV\INode $node
76
+     * @return void
77
+     */
78
+    public function handleGetProperties(
79
+        PropFind $propFind,
80
+        \Sabre\DAV\INode $node
81
+    ) {
82
+        if (!($node instanceof File) && !($node instanceof Directory)) {
83
+            return;
84
+        }
85
+
86
+        // need prefetch ?
87
+        if ($node instanceof \OCA\DAV\Connector\Sabre\Directory
88
+            && $propFind->getDepth() !== 0
89
+            && !is_null($propFind->getStatus(self::PROPERTY_NAME_UNREAD))
90
+        ) {
91
+            $unreadCounts = $this->commentsManager->getNumberOfUnreadCommentsForFolder($node->getId(), $this->userSession->getUser());
92
+            $this->cachedFolders[] = $node->getPath();
93
+            foreach ($unreadCounts as $id => $count) {
94
+                $this->cachedUnreadCount[$id] = $count;
95
+            }
96
+        }
97
+
98
+        $propFind->handle(self::PROPERTY_NAME_COUNT, function() use ($node) {
99
+            return $this->commentsManager->getNumberOfCommentsForObject('files', strval($node->getId()));
100
+        });
101
+
102
+        $propFind->handle(self::PROPERTY_NAME_HREF, function() use ($node) {
103
+            return $this->getCommentsLink($node);
104
+        });
105
+
106
+        $propFind->handle(self::PROPERTY_NAME_UNREAD, function() use ($node) {
107
+            if (isset($this->cachedUnreadCount[$node->getId()])) {
108
+                return $this->cachedUnreadCount[$node->getId()];
109
+            } else {
110
+                list($parentPath,) = \Sabre\Uri\split($node->getPath());
111
+                if ($parentPath === '') {
112
+                    $parentPath = '/';
113
+                }
114
+                // if we already cached the folder this file is in we know there are no shares for this file
115
+                if (array_search($parentPath, $this->cachedFolders) === false) {
116
+                    return $this->getUnreadCount($node);
117
+                } else {
118
+                    return 0;
119
+                }
120
+            }
121
+        });
122
+    }
123
+
124
+    /**
125
+     * returns a reference to the comments node
126
+     *
127
+     * @param Node $node
128
+     * @return mixed|string
129
+     */
130
+    public function getCommentsLink(Node $node) {
131
+        $href =  $this->server->getBaseUri();
132
+        $entryPoint = strpos($href, '/remote.php/');
133
+        if($entryPoint === false) {
134
+            // in case we end up somewhere else, unexpectedly.
135
+            return null;
136
+        }
137
+        $commentsPart = 'dav/comments/files/' . rawurldecode($node->getId());
138
+        $href = substr_replace($href, $commentsPart, $entryPoint + strlen('/remote.php/'));
139
+        return $href;
140
+    }
141
+
142
+    /**
143
+     * returns the number of unread comments for the currently logged in user
144
+     * on the given file or directory node
145
+     *
146
+     * @param Node $node
147
+     * @return Int|null
148
+     */
149
+    public function getUnreadCount(Node $node) {
150
+        $user = $this->userSession->getUser();
151
+        if(is_null($user)) {
152
+            return null;
153
+        }
154
+
155
+        $lastRead = $this->commentsManager->getReadMark('files', strval($node->getId()), $user);
156
+
157
+        return $this->commentsManager->getNumberOfCommentsForObject('files', strval($node->getId()), $lastRead);
158
+    }
159 159
 
160 160
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Server.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -34,12 +34,12 @@
 block discarded – undo
34 34
  */
35 35
 class Server extends \Sabre\DAV\Server {
36 36
 
37
-	/**
38
-	 * @see \Sabre\DAV\Server
39
-	 */
40
-	public function __construct($treeOrNode = null) {
41
-		parent::__construct($treeOrNode);
42
-		self::$exposeVersion = false;
43
-		$this->enablePropfindDepthInfinity = true;
44
-	}
37
+    /**
38
+     * @see \Sabre\DAV\Server
39
+     */
40
+    public function __construct($treeOrNode = null) {
41
+        parent::__construct($treeOrNode);
42
+        self::$exposeVersion = false;
43
+        $this->enablePropfindDepthInfinity = true;
44
+    }
45 45
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/LockPlugin.php 1 patch
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -34,53 +34,53 @@
 block discarded – undo
34 34
 use Sabre\HTTP\RequestInterface;
35 35
 
36 36
 class LockPlugin extends ServerPlugin {
37
-	/**
38
-	 * Reference to main server object
39
-	 *
40
-	 * @var \Sabre\DAV\Server
41
-	 */
42
-	private $server;
37
+    /**
38
+     * Reference to main server object
39
+     *
40
+     * @var \Sabre\DAV\Server
41
+     */
42
+    private $server;
43 43
 
44
-	/**
45
-	 * {@inheritdoc}
46
-	 */
47
-	public function initialize(\Sabre\DAV\Server $server) {
48
-		$this->server = $server;
49
-		$this->server->on('beforeMethod', [$this, 'getLock'], 50);
50
-		$this->server->on('afterMethod', [$this, 'releaseLock'], 50);
51
-	}
44
+    /**
45
+     * {@inheritdoc}
46
+     */
47
+    public function initialize(\Sabre\DAV\Server $server) {
48
+        $this->server = $server;
49
+        $this->server->on('beforeMethod', [$this, 'getLock'], 50);
50
+        $this->server->on('afterMethod', [$this, 'releaseLock'], 50);
51
+    }
52 52
 
53
-	public function getLock(RequestInterface $request) {
54
-		// we can't listen on 'beforeMethod:PUT' due to order of operations with setting up the tree
55
-		// so instead we limit ourselves to the PUT method manually
56
-		if ($request->getMethod() !== 'PUT' || isset($_SERVER['HTTP_OC_CHUNKED'])) {
57
-			return;
58
-		}
59
-		try {
60
-			$node = $this->server->tree->getNodeForPath($request->getPath());
61
-		} catch (NotFound $e) {
62
-			return;
63
-		}
64
-		if ($node instanceof Node) {
65
-			try {
66
-				$node->acquireLock(ILockingProvider::LOCK_SHARED);
67
-			} catch (LockedException $e) {
68
-				throw new FileLocked($e->getMessage(), $e->getCode(), $e);
69
-			}
70
-		}
71
-	}
53
+    public function getLock(RequestInterface $request) {
54
+        // we can't listen on 'beforeMethod:PUT' due to order of operations with setting up the tree
55
+        // so instead we limit ourselves to the PUT method manually
56
+        if ($request->getMethod() !== 'PUT' || isset($_SERVER['HTTP_OC_CHUNKED'])) {
57
+            return;
58
+        }
59
+        try {
60
+            $node = $this->server->tree->getNodeForPath($request->getPath());
61
+        } catch (NotFound $e) {
62
+            return;
63
+        }
64
+        if ($node instanceof Node) {
65
+            try {
66
+                $node->acquireLock(ILockingProvider::LOCK_SHARED);
67
+            } catch (LockedException $e) {
68
+                throw new FileLocked($e->getMessage(), $e->getCode(), $e);
69
+            }
70
+        }
71
+    }
72 72
 
73
-	public function releaseLock(RequestInterface $request) {
74
-		if ($request->getMethod() !== 'PUT' || isset($_SERVER['HTTP_OC_CHUNKED'])) {
75
-			return;
76
-		}
77
-		try {
78
-			$node = $this->server->tree->getNodeForPath($request->getPath());
79
-		} catch (NotFound $e) {
80
-			return;
81
-		}
82
-		if ($node instanceof Node) {
83
-			$node->releaseLock(ILockingProvider::LOCK_SHARED);
84
-		}
85
-	}
73
+    public function releaseLock(RequestInterface $request) {
74
+        if ($request->getMethod() !== 'PUT' || isset($_SERVER['HTTP_OC_CHUNKED'])) {
75
+            return;
76
+        }
77
+        try {
78
+            $node = $this->server->tree->getNodeForPath($request->getPath());
79
+        } catch (NotFound $e) {
80
+            return;
81
+        }
82
+        if ($node instanceof Node) {
83
+            $node->releaseLock(ILockingProvider::LOCK_SHARED);
84
+        }
85
+    }
86 86
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/Forbidden.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -24,42 +24,42 @@
 block discarded – undo
24 24
 
25 25
 class Forbidden extends \Sabre\DAV\Exception\Forbidden {
26 26
 
27
-	const NS_OWNCLOUD = 'http://owncloud.org/ns';
27
+    const NS_OWNCLOUD = 'http://owncloud.org/ns';
28 28
 
29
-	/**
30
-	 * @var bool
31
-	 */
32
-	private $retry;
29
+    /**
30
+     * @var bool
31
+     */
32
+    private $retry;
33 33
 
34
-	/**
35
-	 * @param string $message
36
-	 * @param bool $retry
37
-	 * @param \Exception $previous
38
-	 */
39
-	public function __construct($message, $retry = false, \Exception $previous = null) {
40
-		parent::__construct($message, 0, $previous);
41
-		$this->retry = $retry;
42
-	}
34
+    /**
35
+     * @param string $message
36
+     * @param bool $retry
37
+     * @param \Exception $previous
38
+     */
39
+    public function __construct($message, $retry = false, \Exception $previous = null) {
40
+        parent::__construct($message, 0, $previous);
41
+        $this->retry = $retry;
42
+    }
43 43
 
44
-	/**
45
-	 * This method allows the exception to include additional information
46
-	 * into the WebDAV error response
47
-	 *
48
-	 * @param \Sabre\DAV\Server $server
49
-	 * @param \DOMElement $errorNode
50
-	 * @return void
51
-	 */
52
-	public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
44
+    /**
45
+     * This method allows the exception to include additional information
46
+     * into the WebDAV error response
47
+     *
48
+     * @param \Sabre\DAV\Server $server
49
+     * @param \DOMElement $errorNode
50
+     * @return void
51
+     */
52
+    public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
53 53
 
54
-		// set ownCloud namespace
55
-		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
54
+        // set ownCloud namespace
55
+        $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
56 56
 
57
-		// adding the retry node
58
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
59
-		$errorNode->appendChild($error);
57
+        // adding the retry node
58
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
59
+        $errorNode->appendChild($error);
60 60
 
61
-		// adding the message node
62
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
63
-		$errorNode->appendChild($error);
64
-	}
61
+        // adding the message node
62
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
63
+        $errorNode->appendChild($error);
64
+    }
65 65
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -49,17 +49,17 @@
 block discarded – undo
49 49
 	 * @param \DOMElement $errorNode
50 50
 	 * @return void
51 51
 	 */
52
-	public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
52
+	public function serialize(\Sabre\DAV\Server $server, \DOMElement $errorNode) {
53 53
 
54 54
 		// set ownCloud namespace
55 55
 		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
56 56
 
57 57
 		// adding the retry node
58
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
58
+		$error = $errorNode->ownerDocument->createElementNS('o:', 'o:retry', var_export($this->retry, true));
59 59
 		$errorNode->appendChild($error);
60 60
 
61 61
 		// adding the message node
62
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
62
+		$error = $errorNode->ownerDocument->createElementNS('o:', 'o:reason', $this->getMessage());
63 63
 		$errorNode->appendChild($error);
64 64
 	}
65 65
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/InvalidPath.php 2 patches
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -26,53 +26,53 @@
 block discarded – undo
26 26
 
27 27
 class InvalidPath extends Exception {
28 28
 
29
-	const NS_OWNCLOUD = 'http://owncloud.org/ns';
29
+    const NS_OWNCLOUD = 'http://owncloud.org/ns';
30 30
 
31
-	/**
32
-	 * @var bool
33
-	 */
34
-	private $retry;
31
+    /**
32
+     * @var bool
33
+     */
34
+    private $retry;
35 35
 
36
-	/**
37
-	 * @param string $message
38
-	 * @param bool $retry
39
-	 */
40
-	public function __construct($message, $retry = false) {
41
-		parent::__construct($message);
42
-		$this->retry = $retry;
43
-	}
36
+    /**
37
+     * @param string $message
38
+     * @param bool $retry
39
+     */
40
+    public function __construct($message, $retry = false) {
41
+        parent::__construct($message);
42
+        $this->retry = $retry;
43
+    }
44 44
 
45
-	/**
46
-	 * Returns the HTTP status code for this exception
47
-	 *
48
-	 * @return int
49
-	 */
50
-	public function getHTTPCode() {
45
+    /**
46
+     * Returns the HTTP status code for this exception
47
+     *
48
+     * @return int
49
+     */
50
+    public function getHTTPCode() {
51 51
 
52
-		return 400;
52
+        return 400;
53 53
 
54
-	}
54
+    }
55 55
 
56
-	/**
57
-	 * This method allows the exception to include additional information
58
-	 * into the WebDAV error response
59
-	 *
60
-	 * @param \Sabre\DAV\Server $server
61
-	 * @param \DOMElement $errorNode
62
-	 * @return void
63
-	 */
64
-	public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
56
+    /**
57
+     * This method allows the exception to include additional information
58
+     * into the WebDAV error response
59
+     *
60
+     * @param \Sabre\DAV\Server $server
61
+     * @param \DOMElement $errorNode
62
+     * @return void
63
+     */
64
+    public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
65 65
 
66
-		// set ownCloud namespace
67
-		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
66
+        // set ownCloud namespace
67
+        $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
68 68
 
69
-		// adding the retry node
70
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
71
-		$errorNode->appendChild($error);
69
+        // adding the retry node
70
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
71
+        $errorNode->appendChild($error);
72 72
 
73
-		// adding the message node
74
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
75
-		$errorNode->appendChild($error);
76
-	}
73
+        // adding the message node
74
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
75
+        $errorNode->appendChild($error);
76
+    }
77 77
 
78 78
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -61,17 +61,17 @@
 block discarded – undo
61 61
 	 * @param \DOMElement $errorNode
62 62
 	 * @return void
63 63
 	 */
64
-	public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
64
+	public function serialize(\Sabre\DAV\Server $server, \DOMElement $errorNode) {
65 65
 
66 66
 		// set ownCloud namespace
67 67
 		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
68 68
 
69 69
 		// adding the retry node
70
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
70
+		$error = $errorNode->ownerDocument->createElementNS('o:', 'o:retry', var_export($this->retry, true));
71 71
 		$errorNode->appendChild($error);
72 72
 
73 73
 		// adding the message node
74
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
74
+		$error = $errorNode->ownerDocument->createElementNS('o:', 'o:reason', $this->getMessage());
75 75
 		$errorNode->appendChild($error);
76 76
 	}
77 77
 
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/PasswordLoginForbidden.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -29,27 +29,27 @@
 block discarded – undo
29 29
 
30 30
 class PasswordLoginForbidden extends NotAuthenticated {
31 31
 
32
-	const NS_OWNCLOUD = 'http://owncloud.org/ns';
33
-
34
-	public function getHTTPCode() {
35
-		return 401;
36
-	}
37
-
38
-	/**
39
-	 * This method allows the exception to include additional information
40
-	 * into the WebDAV error response
41
-	 *
42
-	 * @param Server $server
43
-	 * @param DOMElement $errorNode
44
-	 * @return void
45
-	 */
46
-	public function serialize(Server $server, DOMElement $errorNode) {
47
-
48
-		// set ownCloud namespace
49
-		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
50
-
51
-		$error = $errorNode->ownerDocument->createElementNS('o:', 'o:hint', 'password login forbidden');
52
-		$errorNode->appendChild($error);
53
-	}
32
+    const NS_OWNCLOUD = 'http://owncloud.org/ns';
33
+
34
+    public function getHTTPCode() {
35
+        return 401;
36
+    }
37
+
38
+    /**
39
+     * This method allows the exception to include additional information
40
+     * into the WebDAV error response
41
+     *
42
+     * @param Server $server
43
+     * @param DOMElement $errorNode
44
+     * @return void
45
+     */
46
+    public function serialize(Server $server, DOMElement $errorNode) {
47
+
48
+        // set ownCloud namespace
49
+        $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
50
+
51
+        $error = $errorNode->ownerDocument->createElementNS('o:', 'o:hint', 'password login forbidden');
52
+        $errorNode->appendChild($error);
53
+    }
54 54
 
55 55
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/FileLocked.php 2 patches
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -30,20 +30,20 @@
 block discarded – undo
30 30
 
31 31
 class FileLocked extends \Sabre\DAV\Exception {
32 32
 
33
-	public function __construct($message = "", $code = 0, Exception $previous = null) {
34
-		if($previous instanceof \OCP\Files\LockNotAcquiredException) {
35
-			$message = sprintf('Target file %s is locked by another process.', $previous->path);
36
-		}
37
-		parent::__construct($message, $code, $previous);
38
-	}
33
+    public function __construct($message = "", $code = 0, Exception $previous = null) {
34
+        if($previous instanceof \OCP\Files\LockNotAcquiredException) {
35
+            $message = sprintf('Target file %s is locked by another process.', $previous->path);
36
+        }
37
+        parent::__construct($message, $code, $previous);
38
+    }
39 39
 
40
-	/**
41
-	 * Returns the HTTP status code for this exception
42
-	 *
43
-	 * @return int
44
-	 */
45
-	public function getHTTPCode() {
40
+    /**
41
+     * Returns the HTTP status code for this exception
42
+     *
43
+     * @return int
44
+     */
45
+    public function getHTTPCode() {
46 46
 
47
-		return 423;
48
-	}
47
+        return 423;
48
+    }
49 49
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@
 block discarded – undo
31 31
 class FileLocked extends \Sabre\DAV\Exception {
32 32
 
33 33
 	public function __construct($message = "", $code = 0, Exception $previous = null) {
34
-		if($previous instanceof \OCP\Files\LockNotAcquiredException) {
34
+		if ($previous instanceof \OCP\Files\LockNotAcquiredException) {
35 35
 			$message = sprintf('Target file %s is locked by another process.', $previous->path);
36 36
 		}
37 37
 		parent::__construct($message, $code, $previous);
Please login to merge, or discard this patch.