Add correct method for hardcoded /f/{fileid}

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2019-03-14 15:12:16 +01:00
parent 762a8bb3d9
commit 5e5c5a16dc
No known key found for this signature in database
GPG key ID: 7076EA9751AACDDA

View file

@ -128,6 +128,18 @@ class ViewController extends Controller {
return \OC_Helper::getStorageInfo('/', $dirInfo);
}
/**
* @NoCSRFRequired
* @NoAdminRequired
*
* @param string $fileid
* @return TemplateResponse|RedirectResponse
*/
public function showFile(string $fileid = null): Response {
// This is the entry point from the `/f/{fileid}` URL which is hardcoded in the server.
return $this->redirectToFile($fileid);
}
/**
* @NoCSRFRequired
* @NoAdminRequired
@ -140,7 +152,7 @@ class ViewController extends Controller {
public function index($dir = '', $view = '', $fileid = null, $fileNotFound = false) {
if ($fileid !== null) {
try {
return $this->showFile($fileid);
return $this->redirectToFile($fileid);
} catch (NotFoundException $e) {
return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index', ['fileNotFound' => true]));
}
@ -285,7 +297,7 @@ class ViewController extends Controller {
* @return RedirectResponse redirect response or not found response
* @throws \OCP\Files\NotFoundException
*/
private function showFile($fileId) {
private function redirectToFile($fileId) {
$uid = $this->userSession->getUser()->getUID();
$baseFolder = $this->rootFolder->getUserFolder($uid);
$files = $baseFolder->getById($fileId);