From 93172d1e8159e8e75a18c31f22058de930db9f24 Mon Sep 17 00:00:00 2001 From: Miguel N Date: Sat, 30 Oct 2021 04:37:10 +0100 Subject: [PATCH] Improve devtools interface This commit revamps the interface and adds more commands. --- app/Http/Controllers/DevToolsController.php | 49 +++++++++++++++---- .../administration/devtools.blade.php | 20 ++++++-- routes/web.php | 22 +++++++-- 3 files changed, 72 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/DevToolsController.php b/app/Http/Controllers/DevToolsController.php index 5badc77..d69665c 100755 --- a/app/Http/Controllers/DevToolsController.php +++ b/app/Http/Controllers/DevToolsController.php @@ -23,30 +23,33 @@ namespace App\Http\Controllers; use App\Application; use App\Events\ApplicationApprovedEvent; +use App\Services\AccountSuspensionService; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Auth; class DevToolsController extends Controller { - // The use case for Laravel's gate and/or validation Requests is so tiny here that a full-blown policy would be overkill. - protected function isolatedAuthorise() - { + public function __construct() { + // + } + + private function singleAuthorise() { if (! Auth::user()->can('admin.developertools.use')) { abort(403, __('You\'re not authorized to access this page.')); } } - public function index() - { - $this->isolatedAuthorise(); + public function index() { + $this->singleAuthorise(); return view('dashboard.administration.devtools') ->with('applications', Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get()); } - public function forceVoteCount(Request $request) - { - $this->isolatedAuthorise(); + public function forceApprovalEvent(Request $request) { + $this->singleAuthorise(); + $application = Application::find($request->application); if (! is_null($application)) { @@ -59,4 +62,32 @@ class DevToolsController extends Controller return redirect()->back(); } + + public function evaluateVotes() { + + $this->singleAuthorise(); + + $code = Artisan::call("votes:evaluate"); + + return redirect() + ->back() + ->with('success', 'Ran vote evaluation logic, with exit code ' . $code); + + } + + public function purgeSuspensions(AccountSuspensionService $service) { + + $this->singleAuthorise(); + + if ($service->purgeExpired()) { + return redirect() + ->back() + ->with('success', 'Force purged all expired suspensions.'); + } + + return redirect() + ->back() + ->with('error', 'There were no expired suspensions (or no suspensions at all) to purge.'); + + } } diff --git a/resources/views/dashboard/administration/devtools.blade.php b/resources/views/dashboard/administration/devtools.blade.php index 26ea6db..b30c6e3 100755 --- a/resources/views/dashboard/administration/devtools.blade.php +++ b/resources/views/dashboard/administration/devtools.blade.php @@ -17,7 +17,7 @@

{{__('messages.forceeval')}}

-
+ @csrf