From 6f8b43104834b14ae1fba29a4184b4004aed2de8 Mon Sep 17 00:00:00 2001 From: Jake Esser Date: Thu, 1 Feb 2024 15:27:54 +0100 Subject: [PATCH] fix ACL rename bug Signed-off-by: Jake Esser Replaced delete permission check with parent comparison Use strict comparison Fixed formatting issue Signed-off-by: Jake Esser Formatted code --- lib/ACL/ACLStorageWrapper.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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);