From a9d4f3c83912caa3c1769c8bc49bcecb9db992fd Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Thu, 26 Jun 2025 20:04:11 +0800 Subject: [PATCH] E-Invo ice - Maintenance notice for normal user except admin --- app/Http/Kernel.php | 1 + app/Http/Middleware/EnsureUserIsAdmin.php | 28 +++++++++++ .../assets/vue/general/mixins/request.js | 5 ++ routes/api.php | 49 ++++++++++--------- routes/web.php | 5 ++ 5 files changed, 64 insertions(+), 24 deletions(-) create mode 100644 app/Http/Middleware/EnsureUserIsAdmin.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index ea5a6e9d..ef039b85 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -75,5 +75,6 @@ class Kernel extends HttpKernel 'storage.invoice.check.bytransactions' => \App\Http\Middleware\CheckForStorageInvoiceByTransactions::class, 'storage.invoice.check.bygroup' => \App\Http\Middleware\CheckForStorageInvoiceByGroup::class, 'storage.invoice.check.bypackinglists' => \App\Http\Middleware\CheckForStorageInvoiceByPackingLists::class, + 'admin' => \App\Http\Middleware\EnsureUserIsAdmin::class, //cief todo: 90 - maintenance ]; } diff --git a/app/Http/Middleware/EnsureUserIsAdmin.php b/app/Http/Middleware/EnsureUserIsAdmin.php new file mode 100644 index 00000000..c9474b43 --- /dev/null +++ b/app/Http/Middleware/EnsureUserIsAdmin.php @@ -0,0 +1,28 @@ +authenticate(); + if(!in_array($user->type, RoleTypes::ADMIN_ROLES)){ + return response()->view('errors.503', [], 503); + } + return $next($request); + } +} diff --git a/resources/assets/vue/general/mixins/request.js b/resources/assets/vue/general/mixins/request.js index 13babef8..a1450175 100644 --- a/resources/assets/vue/general/mixins/request.js +++ b/resources/assets/vue/general/mixins/request.js @@ -13,6 +13,11 @@ export default { let statusCode = response.status, success = response.ok; + // console.log('statusCode: ' + statusCode); //cief todo: 90 - maintenance + if(statusCode == 503){ + window.location.href = '/maintenance'; + } + response.json().then(response => { if(!success){ diff --git a/routes/api.php b/routes/api.php index 5b419754..9d03d149 100644 --- a/routes/api.php +++ b/routes/api.php @@ -27,53 +27,54 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function require __DIR__ . '/feedback.php'; Route::group(['middleware' => 'valid.token'], function () { + Route::group(['middleware' => 'admin'], function () { //cief todo: 90 - maintenance - Route::get('/storage/{fileName}/fetch', 'Documents\RenderDocumentController@fileStorageServe')->where(['fileName' => '.*'])->name('storage.document.file'); + Route::get('/storage/{fileName}/fetch', 'Documents\RenderDocumentController@fileStorageServe')->where(['fileName' => '.*'])->name('storage.document.file'); - Route::post('online_payment/callback', 'Billplz\CallbackBillplzController@callback')->name('online_payment.callback'); + Route::post('online_payment/callback', 'Billplz\CallbackBillplzController@callback')->name('online_payment.callback'); - Route::post('/import/update-debtor/f614e339d7058904a831aad742e24d55', 'Imports\ImportUpdateDebtorController@import')->name('debtor.import'); + Route::post('/import/update-debtor/f614e339d7058904a831aad742e24d55', 'Imports\ImportUpdateDebtorController@import')->name('debtor.import'); - require __DIR__ . '/company.php'; + require __DIR__ . '/company.php'; - require __DIR__ . '/document.php'; + require __DIR__ . '/document.php'; - require __DIR__ . '/bank.php'; + require __DIR__ . '/bank.php'; - require __DIR__ . '/currency.php'; + require __DIR__ . '/currency.php'; - require __DIR__ . '/address.php'; + require __DIR__ . '/address.php'; - require __DIR__ . '/transaction.php'; + require __DIR__ . '/transaction.php'; - require __DIR__ . '/receipt.php'; + require __DIR__ . '/receipt.php'; - require __DIR__ . '/order.php'; + require __DIR__ . '/order.php'; - require __DIR__ . '/packing_list.php'; + require __DIR__ . '/packing_list.php'; - require __DIR__ . '/remark.php'; + require __DIR__ . '/remark.php'; - require __DIR__ . '/transport.php'; + require __DIR__ . '/transport.php'; - require __DIR__ . '/schedule.php'; + require __DIR__ . '/schedule.php'; - require __DIR__ . '/segment.php'; + require __DIR__ . '/segment.php'; - require __DIR__ . '/announcement.php'; + require __DIR__ . '/announcement.php'; - require __DIR__ . '/report.php'; + require __DIR__ . '/report.php'; - require __DIR__ . '/wallet.php'; + require __DIR__ . '/wallet.php'; - require __DIR__ . '/contact.php'; + require __DIR__ . '/contact.php'; - require __DIR__ . '/help_menu.php'; + require __DIR__ . '/help_menu.php'; - require __DIR__ . '/permits_reminder.php'; - - require __DIR__ . '/job.php'; + require __DIR__ . '/permits_reminder.php'; + require __DIR__ . '/job.php'; + }); }); require __DIR__ . '/announcement.php'; diff --git a/routes/web.php b/routes/web.php index 94909ea0..0934ba05 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1420,3 +1420,8 @@ Route::get('/group-transaction-with-completed-payments', function () { Route::get('/downloads', function () { return view('pages.downloads.index'); })->name('admin.downloads'); + + +Route::get('/maintenance', function () { + return response()->view('errors.503', [], 503); +});