From 541e0036337e09ffe5968b643b0ce107e6c001da Mon Sep 17 00:00:00 2001 From: DariusIII Date: Sun, 8 Apr 2018 22:36:29 +0200 Subject: [PATCH] Add FailedReleasesController and routes --- Changelog | 1 + app/Http/Controllers/ContentController.php | 1 + .../Controllers/FailedReleasesController.php | 52 +++++++++++++++ public/pages/content.php | 66 ------------------- routes/web.php | 4 ++ 5 files changed, 58 insertions(+), 66 deletions(-) create mode 100644 app/Http/Controllers/FailedReleasesController.php delete mode 100644 public/pages/content.php diff --git a/Changelog b/Changelog index 8ca83fba0..80f9874f4 100755 --- a/Changelog +++ b/Changelog @@ -1,4 +1,5 @@ 2018-04-08 DariusIII + * Chg: Add FailedReleasesController and routes * Chg: Add ContentController and route 2018-04-07 DariusIII * Chg: Add BtcPaymentController diff --git a/app/Http/Controllers/ContentController.php b/app/Http/Controllers/ContentController.php index bd90c3d31..1a8c8697a 100644 --- a/app/Http/Controllers/ContentController.php +++ b/app/Http/Controllers/ContentController.php @@ -10,6 +10,7 @@ class ContentController extends BasePageController { public function show(Request $request) { + $this->setPrefs(); $contents = new Contents(); $role = 0; diff --git a/app/Http/Controllers/FailedReleasesController.php b/app/Http/Controllers/FailedReleasesController.php new file mode 100644 index 000000000..f3f78f1bb --- /dev/null +++ b/app/Http/Controllers/FailedReleasesController.php @@ -0,0 +1,52 @@ +setPrefs(); + // Page is accessible only by the rss token, or logged in users. + if (Auth::check()) { + $uid = Auth::id(); + $rssToken = $this->userdata['rsstoken']; + } else { + if (! $request->has('userid') || ! $request->has('rsstoken')) { + header('X-DNZB-RCode: 400'); + header('X-DNZB-RText: Bad request, please supply all parameters!'); + $this->show403(); + } else { + $res = User::getByIdAndRssToken($request->input('userid'), $request->input('rsstoken')); + } + if ($res === null) { + header('X-DNZB-RCode: 401'); + header('X-DNZB-RText: Unauthorised, wrong user ID or rss key!'); + $this->show403(); + } else { + $uid = $res['id']; + $rssToken = $res['rsstoken']; + } + } + + if (isset($uid, $rssToken) && is_numeric($uid) && $request->has('guid')) { + $alt = Release::getAlternate($request->input('guid'), $uid); + if ($alt === null) { + header('X-DNZB-RCode: 404'); + header('X-DNZB-RText: No NZB found for alternate match.'); + $this->show404(); + } else { + header('Location: '.$this->serverurl.'getnzb?id='.$alt['guid'].'&i='.$uid.'&r='.$rssToken); + } + } + } +} diff --git a/public/pages/content.php b/public/pages/content.php deleted file mode 100644 index 946708130..000000000 --- a/public/pages/content.php +++ /dev/null @@ -1,66 +0,0 @@ -userdata) && Auth::check()) { - $role = $page->userdata['role']; -} - -/* The role column in the content table values are : - * 1 = logged in users - * 2 = admins - * - * The user role values are: - * 1 = user - * 2 = admin - * 3 = disabled - * 4 = moderator - * - * Admins and mods should be the only ones to see admin content. - */ -$page->smarty->assign('admin', (($role === 2 || $role === 4) ? 'true' : 'false')); - -$contentId = 0; -if (! empty(request()->input('id'))) { - $contentId = request()->input('id'); -} - -$request = false; -if (! empty(request()->input('page'))) { - $request = request()->input('page'); -} - -if ($contentId === 0 && $request === 'content') { - $content = $contents->getAllButFront(); - $page->smarty->assign('front', false); - $page->meta_title = 'Contents page'; - $page->meta_keywords = 'contents'; - $page->meta_description = 'This is the contents page.'; -} elseif ($contentId !== 0 && $request !== false) { - $content = [$contents->getByID($contentId, $role)]; - $page->smarty->assign('front', false); - $page->meta_title = 'Contents page'; - $page->meta_keywords = 'contents'; - $page->meta_description = 'This is the contents page.'; -} else { - $content = $contents->getFrontPage(); - $index = $contents->getIndex(); - $page->smarty->assign('front', true); - $page->meta_title = $index->title; - $page->meta_keywords = $index->metakeywords; - $page->meta_description = $index->metadescription; -} - -if (empty($content)) { - $page->show404(); -} - -$page->smarty->assign('content', $content); - -$page->content = $page->smarty->fetch('content.tpl'); -$page->pagerender(); diff --git a/routes/web.php b/routes/web.php index 68002ba97..28e6c6c5b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -76,6 +76,10 @@ Route::get('content', 'ContentController@show'); Route::post('content', 'ContentController@show'); +Route::get('failed', 'FailedReleasesController@show'); + +Route::post('failed', 'FailedReleasesController@show'); + Route::get('/games', function () { redirect('/games'); })->middleware('auth');