diff --git a/lib/ACL/ACLStorageWrapper.php b/lib/ACL/ACLStorageWrapper.php index 2ca92cc4e..2e9048607 100644 --- a/lib/ACL/ACLStorageWrapper.php +++ b/lib/ACL/ACLStorageWrapper.php @@ -94,7 +94,12 @@ public function rename($source, $target) { if ($sourceParent === '.') { $sourceParent = ''; } - return $this->checkPermissions($sourceParent, Constants::PERMISSION_DELETE) && + $targetParent = dirname($target); + if ($targetParent === '.') { + $targetParent = ''; + } + return ($sourceParent === $targetParent || + $this->checkPermissions($sourceParent, Constants::PERMISSION_DELETE)) && $this->checkPermissions($source, Constants::PERMISSION_UPDATE & Constants::PERMISSION_READ) && $this->checkPermissions($target, $permissions) && parent::rename($source, $target);