From eb1d5423d809d6a10d406bad9ca18ff575b06dbf Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Wed, 25 Sep 2024 14:33:12 +0800 Subject: [PATCH] Laravel Vapor - Convert /export/on-hold-packing-list into protected route like API + Disable direct dispatch of UpdatePerfexCRMPrelude job at PackingListToPerfexCRMProcessor --- .../PackingListToPerfexCRMProcessor.php | 2 +- ...endingArrangementPackingListController.php | 9 +++--- app/Http/Kernel.php | 1 + .../CheckAuthorizationMiddleware.php | 29 +++++++++++++++++++ routes/web.php | 14 +++++---- 5 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 app/Http/Middleware/CheckAuthorizationMiddleware.php diff --git a/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php index 5c992804..abbb04f9 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php @@ -116,7 +116,7 @@ class PackingListToPerfexCRMProcessor Log::info('An unexpected error occurred when DelayedJob::create: ' . $e->getMessage()); } - UpdatePerfexCRMPrelude::dispatch($packingList, null, $updatePerfexCRMObject, false); + //UpdatePerfexCRMPrelude::dispatch($packingList, null, $updatePerfexCRMObject, false); } diff --git a/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php b/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php index 1a404289..72e9d587 100644 --- a/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php +++ b/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php @@ -2,16 +2,16 @@ namespace App\Http\Controllers\Exports; + use App\Classes\Modules\Exports\Services\ExportsOnHoldPackingList; use App\Classes\Modules\Exports\Services\ExportsPendingArrangementDeliveryList; -use App\Models\User; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Excel; use Illuminate\Support\Facades\Storage; use App\Classes\General\AWSS3Helper; +use App\Http\Controllers\Controller; -class ExportPendingArrangementPackingListController +class ExportPendingArrangementPackingListController extends Controller { /** * ExportPendingArrangementPackingListController constructor. @@ -19,8 +19,7 @@ class ExportPendingArrangementPackingListController */ public function __construct(Request $request) { - $token = Auth::fromUser(User::find(1)); - $request->headers->set('Authorization', 'Bearer '.$token); + $this->middleware('auth.check'); } public function export(Request $request) { diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index fcd38fae..ea5a6e9d 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -70,6 +70,7 @@ class Kernel extends HttpKernel 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'valid.token' => ValidateToken::class, 'token.check' => \App\Http\Middleware\TokenCheckerMiddleware::class, + 'auth.check' => \App\Http\Middleware\CheckAuthorizationMiddleware::class, 'storage.invoice.check.byorder' => \App\Http\Middleware\CheckForStorageInvoiceByOrderId::class, 'storage.invoice.check.bytransactions' => \App\Http\Middleware\CheckForStorageInvoiceByTransactions::class, 'storage.invoice.check.bygroup' => \App\Http\Middleware\CheckForStorageInvoiceByGroup::class, diff --git a/app/Http/Middleware/CheckAuthorizationMiddleware.php b/app/Http/Middleware/CheckAuthorizationMiddleware.php new file mode 100644 index 00000000..2859e66c --- /dev/null +++ b/app/Http/Middleware/CheckAuthorizationMiddleware.php @@ -0,0 +1,29 @@ +user()){ + $roleToCheck = Auth()->user()->type; + if (!in_array($roleToCheck, RoleTypes::ADMIN_ROLES)) { + return response()->json(['error' => 'Unauthorized'], 401); + } + } + + return $next($request); + } +} diff --git a/routes/web.php b/routes/web.php index 761c3c7a..aec62188 100644 --- a/routes/web.php +++ b/routes/web.php @@ -434,7 +434,6 @@ Route::get('/export/customer-latest-order-date/f614e339d7058904a831aad742e24d55' Route::get('/export/packing-list/{id}', 'Exports\ExportContainerPackingListController@export')->name('container.packaging_list.export'); Route::get('/export/pending-arrangement-delivery-list', 'Exports\ExportPendingArrangementPackingListV2Controller@export')->name('packaging_list.pending_arrangement.export'); // Route::get('/export/on-hold-packing-list', 'Exports\ExportPendingArrangementPackingListV2Controller@onHold')->name('packaging_list.on_hold.export'); -Route::get('/export/on-hold-packing-list', 'Exports\ExportPendingArrangementPackingListController@onHold')->name('packaging_list.on_hold.export'); Route::get('/export/arrived-parcel', 'Exports\ExportArrivedParcelController@export')->name('packing_list.arrived_parcel.export'); Route::get('/export/parcel-summary', 'Exports\ExportArrivedParcelController@summary'); Route::get('/export/aging-list', 'Exports\ExportArrivedParcelController@aging')->name('aging-listing.export'); @@ -442,6 +441,9 @@ Route::get('/export/parcel-postcode', 'Exports\ExportParcelPostcodesController@e Route::get('/export/{year}/customer-total-order', 'Exports\ExportCustomersToExcelController@totalOrders'); Route::get('/export/packing-list-warehouse/guangzhou2-to-johor', 'Exports\ExportArrivedParcelController@guangZhou2ToJohor'); +//Convert to protected route (20240925) +Route::get('/export/on-hold-packing-list', 'Exports\ExportPendingArrangementPackingListController@onHold')->middleware(['api'])->middleware(['valid.token'])->name('packaging_list.on_hold.export'); + Route::get('/settings', function () { return view('pages.settings'); })->name('settings'); @@ -1350,11 +1352,11 @@ Route::get('/group-transaction-with-completed-payments', function () { $companyMarking = $connection ? $connection->invitee_reference : ''; dump([ - 'reference' => $group->reference, - 'groupPayment_id' => $groupPayment->id, - 'groupPayment_status' => $groupPayment->status, - 'order' => $order->reference, - 'companyMarking' => $companyMarking, + 'reference' => $group->reference, + 'groupPayment_id' => $groupPayment->id, + 'groupPayment_status' => $groupPayment->status, + 'order' => $order->reference, + 'companyMarking' => $companyMarking, ]); echo '' . $companyMarking . '
'; }