mirror of
https://github.com/nextcloud/server.git
synced 2026-06-13 18:50:47 -04:00
Merge pull request #42524 from nextcloud/backport/42427/stable28
[stable28] fix(ViewController): Properly handle non-existent fileIds (regression lead to 500 errors)
This commit is contained in:
commit
61dedd7ff3
1 changed files with 10 additions and 6 deletions
|
|
@ -237,12 +237,16 @@ class ViewController extends Controller {
|
|||
if ($fileid && $dir !== '') {
|
||||
$baseFolder = $this->rootFolder->getUserFolder($userId);
|
||||
$nodes = $baseFolder->getById((int) $fileid);
|
||||
$nodePath = $baseFolder->getRelativePath($nodes[0]->getPath());
|
||||
$relativePath = $nodePath ? dirname($nodePath) : '';
|
||||
// If the requested path does not contain the file id
|
||||
// or if the requested path is not the file id itself
|
||||
if (count($nodes) === 1 && $relativePath !== $dir && $nodePath !== $dir) {
|
||||
return $this->redirectToFile((int) $fileid);
|
||||
if (!empty($nodes)) {
|
||||
$nodePath = $baseFolder->getRelativePath($nodes[0]->getPath());
|
||||
$relativePath = $nodePath ? dirname($nodePath) : '';
|
||||
// If the requested path does not contain the file id
|
||||
// or if the requested path is not the file id itself
|
||||
if (count($nodes) === 1 && $relativePath !== $dir && $nodePath !== $dir) {
|
||||
return $this->redirectToFile((int) $fileid);
|
||||
}
|
||||
} else { // fileid does not exist anywhere
|
||||
$fileNotFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue