Add StorageNotAvailableException
This commit is contained in:
parent
d94d307f52
commit
d78a2a9f78
|
@ -8,6 +8,9 @@
|
|||
|
||||
namespace OC\Files\Storage;
|
||||
|
||||
use OCP\Files\StorageNotAvailableException;
|
||||
use Sabre\DAV\Exception;
|
||||
|
||||
class DAV extends \OC\Files\Storage\Common {
|
||||
protected $password;
|
||||
protected $user;
|
||||
|
@ -463,29 +466,36 @@ class DAV extends \OC\Files\Storage\Common {
|
|||
*
|
||||
* @param string $path
|
||||
* @param int $time
|
||||
* @throws \OCP\Files\StorageNotAvailableException
|
||||
* @return bool
|
||||
*/
|
||||
public function hasUpdated($path, $time) {
|
||||
$this->init();
|
||||
$response = $this->client->propfind($this->encodePath($path), array(
|
||||
'{DAV:}getlastmodified',
|
||||
'{DAV:}getetag',
|
||||
'{http://owncloud.org/ns}permissions'
|
||||
));
|
||||
if (isset($response['{DAV:}getetag'])) {
|
||||
$cachedData = $this->getCache()->get($path);
|
||||
$etag = trim($response['{DAV:}getetag'], '"');
|
||||
if ($cachedData['etag'] !== $etag) {
|
||||
return true;
|
||||
} else if (isset($response['{http://owncloud.org/ns}permissions'])) {
|
||||
$permissions = $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
|
||||
return $permissions !== $cachedData['permissions'];
|
||||
try {
|
||||
$response = $this->client->propfind($this->encodePath($path), array(
|
||||
'{DAV:}getlastmodified',
|
||||
'{DAV:}getetag',
|
||||
'{http://owncloud.org/ns}permissions'
|
||||
));
|
||||
if (isset($response['{DAV:}getetag'])) {
|
||||
$cachedData = $this->getCache()->get($path);
|
||||
$etag = trim($response['{DAV:}getetag'], '"');
|
||||
if ($cachedData['etag'] !== $etag) {
|
||||
return true;
|
||||
} else if (isset($response['{http://owncloud.org/ns}permissions'])) {
|
||||
$permissions = $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
|
||||
return $permissions !== $cachedData['permissions'];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
$remoteMtime = strtotime($response['{DAV:}getlastmodified']);
|
||||
return $remoteMtime > $time;
|
||||
}
|
||||
} else {
|
||||
$remoteMtime = strtotime($response['{DAV:}getlastmodified']);
|
||||
return $remoteMtime > $time;
|
||||
} catch (Exception\NotFound $e) {
|
||||
return false;
|
||||
} catch (Exception $e) {
|
||||
throw new StorageNotAvailableException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Public interface of ownCloud for apps to use.
|
||||
* Files/AlreadyExistsException class
|
||||
*/
|
||||
|
||||
// use OCP namespace for all classes that are considered public.
|
||||
// This means that they should be used by apps instead of the internal ownCloud classes
|
||||
namespace OCP\Files;
|
||||
|
||||
class StorageNotAvailableException extends \Exception {
|
||||
}
|
Loading…
Reference in New Issue