|
|
|
|
@ -682,7 +682,7 @@ class DAV extends Common {
|
|
|
|
|
public function getPermissions($path) {
|
|
|
|
|
$this->init();
|
|
|
|
|
$path = $this->cleanPath($path);
|
|
|
|
|
$response = $this->client->propfind($this->encodePath($path), array('{http://owncloud.org/ns}permissions'));
|
|
|
|
|
$response = $this->propfind($path);
|
|
|
|
|
if (isset($response['{http://owncloud.org/ns}permissions'])) {
|
|
|
|
|
return $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
|
|
|
|
|
} else if ($this->is_dir($path)) {
|
|
|
|
|
@ -694,6 +694,17 @@ class DAV extends Common {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** {@inheritdoc} */
|
|
|
|
|
public function getETag($path) {
|
|
|
|
|
$this->init();
|
|
|
|
|
$path = $this->cleanPath($path);
|
|
|
|
|
$response = $this->propfind($path);
|
|
|
|
|
if (isset($response['{DAV:}getetag'])) {
|
|
|
|
|
return trim($response['{DAV:}getetag'], '"');
|
|
|
|
|
}
|
|
|
|
|
return parent::getEtag($path);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param string $permissionsString
|
|
|
|
|
* @return int
|
|
|
|
|
@ -733,8 +744,11 @@ class DAV extends Common {
|
|
|
|
|
$response = $this->propfind($path);
|
|
|
|
|
if (isset($response['{DAV:}getetag'])) {
|
|
|
|
|
$cachedData = $this->getCache()->get($path);
|
|
|
|
|
$etag = trim($response['{DAV:}getetag'], '"');
|
|
|
|
|
if ($cachedData['etag'] !== $etag) {
|
|
|
|
|
$etag = null;
|
|
|
|
|
if (isset($response['{DAV:}getetag'])) {
|
|
|
|
|
$etag = trim($response['{DAV:}getetag'], '"');
|
|
|
|
|
}
|
|
|
|
|
if (!empty($etag) && $cachedData['etag'] !== $etag) {
|
|
|
|
|
return true;
|
|
|
|
|
} else if (isset($response['{http://owncloud.org/ns}permissions'])) {
|
|
|
|
|
$permissions = $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
|
|
|
|
|
|