Leverage injected request object

Laravel automatically injects the current Http [request object][1] to all Controller actions and Middleware. Leveraging this object improves consistency and testability.

[1]: https://laravel.com/docs/requests#accessing-the-request
This commit is contained in:
Shift
2023-03-30 14:15:14 +00:00
parent ce9ce47010
commit 66c246852c
16 changed files with 82 additions and 79 deletions
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\BasePageController;
use App\Models\Release;
use Blacklight\AniDB;
@@ -11,7 +12,7 @@ class AdminAnidbController extends BasePageController
/**
* @throws \Exception
*/
public function index(): void
public function index(Request $request): void
{
$this->setAdminPrefs();
@@ -19,8 +20,8 @@ class AdminAnidbController extends BasePageController
$title = $meta_title = 'AniDB List';
$aname = '';
if (request()->has('animetitle') && ! empty(request()->input('animetitle'))) {
$aname = request()->input('animetitle');
if ($request->has('animetitle') && ! empty($request->input('animetitle'))) {
$aname = $request->input('animetitle');
}
$this->smarty->assign('animetitle', $aname);
@@ -38,33 +39,33 @@ class AdminAnidbController extends BasePageController
/**
* @throws \Exception
*/
public function edit(int $id): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse
public function edit(Request $request, int $id): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse
{
$this->setAdminPrefs();
$AniDB = new AniDB();
// Set the current action.
$action = request()->input('action') ?? 'view';
$action = $request->input('action') ?? 'view';
switch ($action) {
case 'submit':
$AniDB->updateTitle(
request()->input('anidbid'),
request()->input('title'),
request()->input('type'),
request()->input('startdate'),
request()->input('enddate'),
request()->input('related'),
request()->input('similar'),
request()->input('creators'),
request()->input('description'),
request()->input('rating'),
request()->input('categories'),
request()->input('characters'),
request()->input('epnos'),
request()->input('airdates'),
request()->input('episodetitles')
$request->input('anidbid'),
$request->input('title'),
$request->input('type'),
$request->input('startdate'),
$request->input('enddate'),
$request->input('related'),
$request->input('similar'),
$request->input('creators'),
$request->input('description'),
$request->input('rating'),
$request->input('categories'),
$request->input('characters'),
$request->input('epnos'),
$request->input('airdates'),
$request->input('episodetitles')
);
return redirect('admin/anidb-list');
@@ -94,13 +95,13 @@ class AdminAnidbController extends BasePageController
*
* @throws \Exception
*/
public function destroy(int $id): void
public function destroy(Request $request, int $id): void
{
$this->setAdminPrefs();
$success = false;
if (request()->has('id')) {
if ($request->has('id')) {
$success = Release::removeAnidbIdFromReleases($id);
$this->smarty->assign('anidbid', $id);
}
@@ -29,7 +29,7 @@ class AdminUserController extends BasePageController
$ordering = getUserBrowseOrdering();
$orderBy = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
$page = request()->has('page') && is_numeric(request()->input('page')) ? request()->input('page') : 1;
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$offset = ($page - 1) * config('nntmux.items_per_page');
$variables = [
@@ -50,7 +50,7 @@ class AdminUserController extends BasePageController
true
);
$results = $this->paginate($rslt ?? [], User::getCount($variables['role'], $variables['username'], $variables['host'], $variables['email']) ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], User::getCount($variables['role'], $variables['username'], $variables['host'], $variables['email']) ?? 0, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$this->smarty->assign(
[
+19 -19
View File
@@ -399,16 +399,16 @@ class ApiController extends BasePageController
*
* @return int $maxAge The maximum age of the release
*/
public function maxAge(): int
public function maxAge(Request $request): int
{
$maxAge = -1;
if (request()->has('maxage')) {
if (! request()->filled('maxage')) {
if ($request->has('maxage')) {
if (! $request->filled('maxage')) {
Utility::showApiError(201, 'Incorrect parameter (maxage must not be empty)');
} elseif (! is_numeric(request()->input('maxage'))) {
} elseif (! is_numeric($request->input('maxage'))) {
Utility::showApiError(201, 'Incorrect parameter (maxage must be numeric)');
} else {
$maxAge = (int) request()->input('maxage');
$maxAge = (int) $request->input('maxage');
}
}
@@ -418,11 +418,11 @@ class ApiController extends BasePageController
/**
* Verify cat parameter.
*/
public function categoryID(): array
public function categoryID(Request $request): array
{
$categoryID[] = -1;
if (request()->has('cat')) {
$categoryIDs = urldecode(request()->input('cat'));
if ($request->has('cat')) {
$categoryIDs = urldecode($request->input('cat'));
// Append Web-DL category ID if HD present for SickBeard / Sonarr compatibility.
if (str_contains($categoryIDs, (string) Category::TV_HD) && ! str_contains($categoryIDs, (string) Category::TV_WEBDL) && (int) Settings::settingValue('indexer.categorise.catwebdl') === 0) {
$categoryIDs .= (','.Category::TV_WEBDL);
@@ -439,11 +439,11 @@ class ApiController extends BasePageController
*
* @throws \Exception
*/
public function group(): string|int|bool
public function group(Request $request): string|int|bool
{
$groupName = -1;
if (request()->has('group')) {
$group = UsenetGroup::isValidGroup(request()->input('group'));
if ($request->has('group')) {
$group = UsenetGroup::isValidGroup($request->input('group'));
if ($group !== false) {
$groupName = $group;
}
@@ -455,11 +455,11 @@ class ApiController extends BasePageController
/**
* Verify limit parameter.
*/
public function limit(): int
public function limit(Request $request): int
{
$limit = 100;
if (request()->has('limit') && is_numeric(request()->input('limit'))) {
$limit = (int) request()->input('limit');
if ($request->has('limit') && is_numeric($request->input('limit'))) {
$limit = (int) $request->input('limit');
}
return $limit;
@@ -468,11 +468,11 @@ class ApiController extends BasePageController
/**
* Verify offset parameter.
*/
public function offset(): int
public function offset(Request $request): int
{
$offset = 0;
if (request()->has('offset') && is_numeric(request()->input('offset'))) {
$offset = (int) request()->input('offset');
if ($request->has('offset') && is_numeric($request->input('offset'))) {
$offset = (int) $request->input('offset');
}
return $offset;
@@ -481,9 +481,9 @@ class ApiController extends BasePageController
/**
* Check if a parameter is empty.
*/
public function verifyEmptyParameter(string $parameter): void
public function verifyEmptyParameter(Request $request, string $parameter): void
{
if (request()->has($parameter) && request()->isNotFilled($parameter)) {
if ($request->has($parameter) && $request->isNotFilled($parameter)) {
Utility::showApiError(201, 'Incorrect parameter ('.$parameter.' must not be empty)');
}
}
@@ -42,8 +42,8 @@ class ForgotPasswordController extends Controller
public function showLinkRequestForm(ShowLinkRequestFormForgotPasswordRequest $request): void
{
$sent = '';
$email = request()->input('email') ?? '';
$rssToken = request()->input('apikey') ?? '';
$email = $request->input('email') ?? '';
$rssToken = $request->input('apikey') ?? '';
if (empty($email) && empty($rssToken)) {
app('smarty.view')->assign('error', 'Missing parameter(email and/or apikey to send password reset');
} else {
@@ -69,7 +69,7 @@ class LoginController extends Controller
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
Session::flash('message', 'You have failed to login too many times.Try again in '.$this->decayMinutes().' minutes.');
$request->session()->flash('message', 'You have failed to login too many times.Try again in '.$this->decayMinutes().' minutes.');
return $this->showLoginForm();
}
@@ -87,13 +87,13 @@ class LoginController extends Controller
$rememberMe = $request->has('rememberme') && $request->input('rememberme') === 'on';
if (! $user->isVerified() || $user->isPendingVerification()) {
Session::flash('message', 'You have not verified your email address!');
$request->session()->flash('message', 'You have not verified your email address!');
return $this->showLoginForm();
}
if (Auth::attempt($request->only($login_type, 'password'), $rememberMe)) {
$userIp = (int) Settings::settingValue('..storeuserips') === 1 ? (request()->ip() ?? request()->getClientIp()) : '';
$userIp = (int) Settings::settingValue('..storeuserips') === 1 ? ($request->ip() ?? $request->getClientIp()) : '';
event(new UserLoggedIn($user, $userIp));
Auth::logoutOtherDevices($request->input('password'));
@@ -103,17 +103,17 @@ class LoginController extends Controller
}
$this->incrementLoginAttempts($request);
Session::flash('message', 'Username or email and password combination used does not match our records!');
$request->session()->flash('message', 'Username or email and password combination used does not match our records!');
} else {
$this->incrementLoginAttempts($request);
Session::flash('message', 'Username or email used do not match our records!');
$request->session()->flash('message', 'Username or email used do not match our records!');
}
return $this->showLoginForm();
}
$this->incrementLoginAttempts($request);
Session::flash('message', implode('', Arr::collapse($validator->errors()->toArray())));
$request->session()->flash('message', implode('', Arr::collapse($validator->errors()->toArray())));
return $this->showLoginForm();
}
+3 -2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Events\UserLoggedIn;
use App\Models\Category;
use App\Models\Forumpost;
@@ -107,9 +108,9 @@ class BasePageController extends Controller
);
}
public function isPostBack(): bool
public function isPostBack(Request $request): bool
{
return \request()->isMethod('POST');
return $request->isMethod('POST');
}
/**
+10 -10
View File
@@ -12,7 +12,7 @@ class BrowseController extends BasePageController
/**
* @throws \Exception
*/
public function index()
public function index(Request $request)
{
$this->setPreferences();
$releases = new Releases();
@@ -20,12 +20,12 @@ class BrowseController extends BasePageController
$this->smarty->assign('category', -1);
$ordering = $releases->getBrowseOrdering();
$orderBy = request()->has('ob') && ! empty(request()->input('ob')) ? request()->input('ob') : '';
$page = request()->has('page') && is_numeric(request()->input('page')) ? request()->input('page') : 1;
$orderBy = $request->has('ob') && ! empty($request->input('ob')) ? $request->input('ob') : '';
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$offset = ($page - 1) * config('nntmux.items_per_page');
$rslt = $releases->getBrowseRange($page, [-1], $offset, config('nntmux.items_per_page'), $orderBy, -1, $this->userdata->categoryexclusions, -1);
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$this->smarty->assign('catname', 'All');
@@ -59,7 +59,7 @@ class BrowseController extends BasePageController
/**
* @throws \Exception
*/
public function show(string $parentCategory, string $id = 'All'): void
public function show(Request $request, string $parentCategory, string $id = 'All'): void
{
$this->setPreferences();
$releases = new Releases();
@@ -83,12 +83,12 @@ class BrowseController extends BasePageController
$this->smarty->assign('category', $category);
$ordering = $releases->getBrowseOrdering();
$orderBy = request()->has('ob') && ! empty(request()->input('ob')) ? request()->input('ob') : '';
$page = request()->has('page') && is_numeric(request()->input('page')) ? request()->input('page') : 1;
$orderBy = $request->has('ob') && ! empty($request->input('ob')) ? $request->input('ob') : '';
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$offset = ($page - 1) * config('nntmux.items_per_page');
$rslt = $releases->getBrowseRange($page, $catarray, $offset, config('nntmux.items_per_page'), $orderBy, -1, $this->userdata->categoryexclusions, $grp);
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$browse = [];
@@ -159,10 +159,10 @@ class BrowseController extends BasePageController
$releases = new Releases();
if ($request->has('g')) {
$group = $request->input('g');
$page = request()->has('page') && is_numeric(request()->input('page')) ? request()->input('page') : 1;
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$offset = ($page - 1) * config('nntmux.items_per_page');
$rslt = $releases->getBrowseRange($page, [-1], $offset, config('nntmux.items_per_page'), '', -1, $this->userdata->categoryexclusions, $group);
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$browse = [];
+3 -2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\DnzbFailure;
use App\Models\Predb;
use App\Models\Release;
@@ -29,7 +30,7 @@ class DetailsController extends BasePageController
*
* @throws \Exception
*/
public function show(string $guid)
public function show(Request $request, string $guid)
{
$this->setPreferences();
@@ -49,7 +50,7 @@ class DetailsController extends BasePageController
}
if ($this->isPostBack()) {
ReleaseComment::addComment($data['id'], $data['gid'], \request()->input('txtAddComment'), $this->userdata->id, \request()->ip());
ReleaseComment::addComment($data['id'], $data['gid'], $request->input('txtAddComment'), $this->userdata->id, $request->ip());
}
$nfo = ReleaseNfo::getReleaseNfo($data['id']);
+1 -1
View File
@@ -36,7 +36,7 @@ class GamesController extends BasePageController
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$ordering = $games->getGamesOrdering();
$orderby = request()->has('ob') && \in_array(request()->input('ob'), $ordering, false) ? request()->input('ob') : '';
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
$offset = ($page - 1) * config('nntmux.items_per_cover_page');
$rslt = $games->getGamesRange($page, $catarray, $offset, config('nntmux.items_per_cover_page'), $orderby, '', $this->userdata->categoryexclusions);
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_cover_page'), $page, $request->url(), $request->query());
+1 -1
View File
@@ -24,7 +24,7 @@ class GetNzbController extends BasePageController
$this->setPreferences();
// Page is accessible only by the rss token, or logged in users.
if (Auth::check()) {
if ($request->user()) {
$uid = $this->userdata->id;
$maxDownloads = $this->userdata->role->downloadrequests;
$rssToken = $this->userdata->api_token;
+1 -1
View File
@@ -51,7 +51,7 @@ class MovieController extends BasePageController
$offset = ($page - 1) * config('nntmux.items_per_cover_page');
$ordering = $movie->getMovieOrdering();
$orderby = request()->has('ob') && \in_array(request()->input('ob'), $ordering, false) ? request()->input('ob') : '';
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
$movies = [];
$rslt = $movie->getMovieRange($page, $catarray, $offset, config('nntmux.items_per_cover_page'), $orderby, -1, $this->userdata->categoryexclusions);
+1 -1
View File
@@ -48,7 +48,7 @@ class MusicController extends BasePageController
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$offset = ($page - 1) * config('nntmux.items_per_cover_page');
$ordering = $music->getMusicOrdering();
$orderby = request()->has('ob') && \in_array(request()->input('ob'), $ordering, false) ? request()->input('ob') : '';
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
$musics = [];
$rslt = $music->getMusicRange($page, $catarray, $offset, config('nntmux.items_per_cover_page'), $orderby, $this->userdata->categoryexclusions);
+2 -2
View File
@@ -175,14 +175,14 @@ class MyShowsController extends BasePageController
$releases = new Releases();
$page = request()->has('page') && is_numeric(request()->input('page')) ? request()->input('page') : 1;
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
$offset = ($page - 1) * config('nntmux.items_per_page');
$ordering = $releases->getBrowseOrdering();
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
$browseCount = $releases->getShowsCount($shows, -1, $this->userdata->categoryexclusions);
$rslt = $releases->getShowsRange($shows ?? [], $offset, config('nntmux.items_per_page'), $orderby, -1, $this->userdata->categoryexclusions);
$results = $this->paginate($rslt ?? [], $browseCount, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], $browseCount, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$this->smarty->assign('covgroup', '');
@@ -12,7 +12,7 @@ class PasswordSecurityController extends Controller
{
public function show2faForm(Request $request): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application
{
$user = Auth::user();
$user = $request->user();
$google2fa_url = '';
if ($user->passwordSecurity()->exists()) {
@@ -37,7 +37,7 @@ class PasswordSecurityController extends Controller
*/
public function generate2faSecret(Request $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\Foundation\Application
{
$user = Auth::user();
$user = $request->user();
// Add the secret key to the registration data
PasswordSecurity::create(
@@ -58,7 +58,7 @@ class PasswordSecurityController extends Controller
*/
public function enable2fa(Request $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\Foundation\Application
{
$user = Auth::user();
$user = $request->user();
$secret = $request->input('verify-code');
$valid = \Google2FA::verifyKey($user->passwordSecurity->google2fa_secret, $secret);
if ($valid) {
@@ -73,13 +73,13 @@ class PasswordSecurityController extends Controller
public function disable2fa(Disable2faPasswordSecurityRequest $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\Foundation\Application
{
if (! (Hash::check($request->get('current-password'), Auth::user()->password))) {
if (! (Hash::check($request->get('current-password'), $request->user()->password))) {
// The passwords matches
return redirect()->back()->with('error', 'Your password does not match with your account password. Please try again.');
}
$validatedData = $request->validated();
$user = Auth::user();
$user = $request->user();
$user->passwordSecurity->google2fa_enable = 0;
$user->passwordSecurity->save();
+2 -2
View File
@@ -81,7 +81,7 @@ class SearchController extends BasePageController
'basic',
$categoryID);
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalrows ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalrows ?? 0, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$this->smarty->assign(
[
@@ -155,7 +155,7 @@ class SearchController extends BasePageController
[$searchVars['searchadvcat'] === '' ? -1 : $searchVars['searchadvcat']]
);
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalrows ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());
$results = $this->paginate($rslt ?? [], $rslt[0]->_totalrows ?? 0, config('nntmux.items_per_page'), $page, $request->url(), $request->query());
$this->smarty->assign(
[
+1 -1
View File
@@ -17,7 +17,7 @@ class ClearanceMiddleware
*/
public function handle($request, Closure $next)
{
$user = Auth::user();
$user = $request->user();
if ($user->hasAnyRole(['Admin', 'Moderator']) && ! $request->is(['Admin', 'Admin/*'])) {
return $next($request);