Skip to content
Snippets Groups Projects
Commit f5e014ed authored by Moritz Strohm's avatar Moritz Strohm
Browse files

Fix for BIESt 2997, re #2997

Merge request studip/studip!2009
parent 1c265b7f
No related branches found
No related tags found
No related merge requests found
...@@ -737,6 +737,7 @@ class FileController extends AuthenticatedController ...@@ -737,6 +737,7 @@ class FileController extends AuthenticatedController
} }
$this->copymode = $copymode; $this->copymode = $copymode;
$this->fileref_id = $fileref_id; $this->fileref_id = $fileref_id;
$this->is_folder = false;
if (Request::get("from_plugin")) { if (Request::get("from_plugin")) {
if (is_array($fileref_id)) { if (is_array($fileref_id)) {
...@@ -756,13 +757,16 @@ class FileController extends AuthenticatedController ...@@ -756,13 +757,16 @@ class FileController extends AuthenticatedController
throw new Trails_Exception(404, _('Plugin existiert nicht.')); throw new Trails_Exception(404, _('Plugin existiert nicht.'));
} }
if (!Request::get("isfolder")) { $this->file_ref = $plugin->getPreparedFile($file_id);
$this->file_ref = $plugin->getPreparedFile($file_id); if (!$this->file_ref) {
} else { //Maybe it is a folder:
$this->parent_folder = $plugin->getFolder($file_id); $folder = $plugin->getFolder($file_id);
if ($folder instanceof FolderType) {
$this->parent_folder = $folder->getParent();
$this->is_folder = true;
}
} }
} else { } else {
if (is_array($fileref_id)) { if (is_array($fileref_id)) {
$this->file_ref = FileRef::find($fileref_id[0]); $this->file_ref = FileRef::find($fileref_id[0]);
} else { } else {
...@@ -782,6 +786,7 @@ class FileController extends AuthenticatedController ...@@ -782,6 +786,7 @@ class FileController extends AuthenticatedController
if ($folder) { if ($folder) {
$this->parent_folder = Folder::find($folder->parent_id); $this->parent_folder = Folder::find($folder->parent_id);
$this->parent_folder = $this->parent_folder->getTypedFolder(); $this->parent_folder = $this->parent_folder->getTypedFolder();
$this->is_folder = true;
} }
} elseif (!$this->parent_folder) { } elseif (!$this->parent_folder) {
throw new AccessDeniedException(); throw new AccessDeniedException();
......
...@@ -3,8 +3,9 @@ $options = array_filter([ ...@@ -3,8 +3,9 @@ $options = array_filter([
'from_plugin' => Request::get('from_plugin'), 'from_plugin' => Request::get('from_plugin'),
'to_folder_id' => Request::get('to_folder_id'), 'to_folder_id' => Request::get('to_folder_id'),
'copymode' => Request::get('copymode', $copymode), 'copymode' => Request::get('copymode', $copymode),
'isfolder' => Request::get('isfolder'), 'isfolder' => Request::get('isfolder', $is_folder),
'fileref_id' => Request::getArray('fileref_id') ?: $fileref_id, 'fileref_id' => Request::getArray('fileref_id') ?: $fileref_id,
'ids' => Request::getArray('ids'),
'direct_parent' => true, 'direct_parent' => true,
], function ($value) { ], function ($value) {
return $value !== null; return $value !== null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment