Fix permissions functions for webdav external storages
This commit is contained in:
parent
4bc8a2550d
commit
be93b0d01d
|
@ -355,7 +355,7 @@ class DAV extends \OC\Files\Storage\Common {
|
|||
* @param string $path
|
||||
*/
|
||||
public function cleanPath($path) {
|
||||
if ($path === ""){
|
||||
if ($path === "") {
|
||||
return $path;
|
||||
}
|
||||
$path = \OC\Files\Filesystem::normalizePath($path);
|
||||
|
@ -400,6 +400,22 @@ class DAV extends \OC\Files\Storage\Common {
|
|||
}
|
||||
}
|
||||
|
||||
public function isUpdatable($path) {
|
||||
return (bool)($this->getPermissions($path) & \OCP\PERMISSION_UPDATE);
|
||||
}
|
||||
|
||||
public function isCreatable($path) {
|
||||
return (bool)($this->getPermissions($path) & \OCP\PERMISSION_CREATE);
|
||||
}
|
||||
|
||||
public function isSharable($path) {
|
||||
return (bool)($this->getPermissions($path) & \OCP\PERMISSION_SHARE);
|
||||
}
|
||||
|
||||
public function isDeletable($path) {
|
||||
return (bool)($this->getPermissions($path) & \OCP\PERMISSION_DELETE);
|
||||
}
|
||||
|
||||
public function getPermissions($path) {
|
||||
$this->init();
|
||||
$response = $this->client->propfind($this->encodePath($path), array('{http://owncloud.org/ns}permissions'));
|
||||
|
@ -419,8 +435,12 @@ class DAV extends \OC\Files\Storage\Common {
|
|||
$permissions |= \OCP\PERMISSION_CREATE;
|
||||
}
|
||||
return $permissions;
|
||||
} else if ($this->is_dir($path)) {
|
||||
return \OCP\PERMISSION_ALL;
|
||||
} else if ($this->file_exists($path)) {
|
||||
return \OCP\PERMISSION_ALL - \OCP\PERMISSION_CREATE;
|
||||
} else {
|
||||
return parent::getPermissions($path);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue