From 76a830acbd0f5c2658885eed820fba6c66123f06 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Wed, 13 Jul 2022 08:10:46 +0000
Subject: [PATCH] relocate to root folder when given folder cannot be loaded,
 fixes #1305

Closes #1305

Merge request studip/studip!802
---
 app/controllers/course/files.php    | 4 +++-
 app/controllers/files.php           | 4 +++-
 app/controllers/institute/files.php | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/app/controllers/course/files.php b/app/controllers/course/files.php
index e649a177ba2..cccbdeec0fe 100644
--- a/app/controllers/course/files.php
+++ b/app/controllers/course/files.php
@@ -141,7 +141,9 @@ class Course_FilesController extends AuthenticatedController
         }
 
         if (!$folder) {
-            throw new Exception(_('Fehler beim Laden des Hauptordners!'));
+            PageLayout::postError(_('Der gewählte Ordner wurde nicht gefunden.'));
+            $this->relocate($this->indexURL());
+            return;
         }
 
         $this->topFolder = $folder->getTypedFolder();
diff --git a/app/controllers/files.php b/app/controllers/files.php
index 9910398a8a6..6d3a5511e4c 100644
--- a/app/controllers/files.php
+++ b/app/controllers/files.php
@@ -580,7 +580,9 @@ class FilesController extends AuthenticatedController
         }
 
         if (!$folder) {
-            throw new Exception(_('Fehler beim Laden des Hauptordners!'));
+            PageLayout::postError(_('Der gewählte Ordner wurde nicht gefunden.'));
+            $this->relocate($this->indexURL());
+            return;
         }
 
         $this->topFolder = $folder->getTypedFolder();
diff --git a/app/controllers/institute/files.php b/app/controllers/institute/files.php
index 0bacb0e4e3d..8ff697b39da 100644
--- a/app/controllers/institute/files.php
+++ b/app/controllers/institute/files.php
@@ -114,7 +114,9 @@ class Institute_FilesController extends AuthenticatedController
         }
 
         if (!$folder) {
-            throw new Exception(_('Fehler beim Laden des Hauptordners!'));
+            PageLayout::postError(_('Der gewählte Ordner wurde nicht gefunden.'));
+            $this->relocate($this->indexURL());
+            return;
         }
 
         $this->topFolder = $folder->getTypedFolder();
-- 
GitLab