Browse Source

fix(trashbin): Fix errors in the log on MOVE operations

dirname will return '.' for files at the root, which will cause an
 Exception that gets logged.
Instead use \Sabre\Uri\split like other sabre plugins, to get an empty
 string for root directory.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/54632/head
Côme Chilliet 2 months ago
parent
commit
5c9c2fe5e2
No known key found for this signature in database GPG Key ID: A3E2F658B28C760A
  1. 4
      apps/files_trashbin/lib/Sabre/TrashbinPlugin.php

4
apps/files_trashbin/lib/Sabre/TrashbinPlugin.php

@ -20,6 +20,7 @@ use Sabre\DAV\Server;
use Sabre\DAV\ServerPlugin;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
use Sabre\Uri;
class TrashbinPlugin extends ServerPlugin {
public const TRASHBIN_FILENAME = '{http://nextcloud.org/ns}trashbin-filename';
@ -146,7 +147,8 @@ class TrashbinPlugin extends ServerPlugin {
public function beforeMove(string $sourcePath, string $destinationPath): bool {
try {
$node = $this->server->tree->getNodeForPath($sourcePath);
$destinationNodeParent = $this->server->tree->getNodeForPath(dirname($destinationPath));
[$destinationDir, ] = Uri\split($destinationPath);
$destinationNodeParent = $this->server->tree->getNodeForPath($destinationDir);
} catch (\Sabre\DAV\Exception $e) {
\OCP\Server::get(LoggerInterface::class)
->error($e->getMessage(), ['app' => 'files_trashbin', 'exception' => $e]);

Loading…
Cancel
Save