From 2e9257f6015e2e848de95ab43a5b89e104bb6bf2 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 30 Aug 2026 12:59:02 +0700 Subject: [PATCH] Fix: set unauthenticated redirect URL to include subpath prefix --- app/Http/Middleware/Authenticate.php | 6 +- routes/web.php | 217 +++++++++++++++------------ 2 files changed, 122 insertions(+), 101 deletions(-) diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 704089a..c04c650 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -15,7 +15,11 @@ class Authenticate extends Middleware protected function redirectTo($request) { if (! $request->expectsJson()) { - return route('login'); + // Paksa redirect menggunakan helper url() agar membawa prefix /sidata dari APP_URL + return url('/login'); + + // ATAU jika menggunakan route name: + // return route('login'); } } } diff --git a/routes/web.php b/routes/web.php index 8b1c322..5f811ba 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,14 +24,30 @@ use App\Http\Controllers\Admin\PengaturanController; use App\Http\Controllers\DataBosOmspanController; use App\Http\Controllers\NotifikasiController; +/* +|-------------------------------------------------------------------------- +| Public & Authentication Routes +|-------------------------------------------------------------------------- +*/ +// Mengatasi request yang masuk ke root (/) maupun subpath (/sidata) Route::get('/', [AuthController::class, 'showFormLogin']); +Route::get('/sidata', [AuthController::class, 'showFormLogin']); + Route::get('login', [AuthController::class, 'showFormLogin'])->name('login'); Route::post('login', [AuthController::class, 'login']); Route::get('register', [AuthController::class, 'showFormRegister'])->name('register'); Route::post('register', [AuthController::class, 'register']); + +/* +|-------------------------------------------------------------------------- +| Authenticated Routes +|-------------------------------------------------------------------------- +*/ Route::group(['middleware' => 'auth'], function () { - Route::group(['prefix' => 'admin', 'middleware'=>'role:admin|superadmin'], function () { - Route::post('users/datatable', [MstPenggunaController::class,'datatable']); + + // ADMIN AREA ================================================== + Route::group(['prefix' => 'admin', 'middleware' => 'role:admin|superadmin'], function () { + Route::post('users/datatable', [MstPenggunaController::class, 'datatable']); Route::get('users/{userId}/lock-upload/{reset}', [MstPenggunaController::class, 'lockUploadData']); Route::get('users/lock-upload-all/{userId}/{reset}', [MstPenggunaController::class, 'lockUploadData']); @@ -51,149 +67,150 @@ Route::group(['middleware' => 'auth'], function () { Route::get('users/{user}/reset', [MstPenggunaController::class, 'resetPass']); Route::resource('users', MstPenggunaController::class); - Route::post('MappingDbhSkpd/datatable', [MappingDbhSkpdController::class,'datatable']); + Route::post('MappingDbhSkpd/datatable', [MappingDbhSkpdController::class, 'datatable']); Route::resource('MappingDbhSkpd', MappingDbhSkpdController::class); - Route::post('MstJenisDana/datatable', [MstJenisDanaController::class,'datatable']); + Route::post('MstJenisDana/datatable', [MstJenisDanaController::class, 'datatable']); Route::resource('MstJenisDana', MstJenisDanaController::class); - Route::post('MstDauRinci/datatable', [MstDauRinciController::class,'datatable']); + Route::post('MstDauRinci/datatable', [MstDauRinciController::class, 'datatable']); Route::resource('MstDauRinci', MstDauRinciController::class); - Route::post('MstJenisBelanja/datatable', [MstJenisBelanjaController::class,'datatable']); + Route::post('MstJenisBelanja/datatable', [MstJenisBelanjaController::class, 'datatable']); Route::resource('MstJenisBelanja', MstJenisBelanjaController::class); - Route::get('MstJenisBelanja/{MstJenisBelanja}/create-sub', [MstSubJenisBelanjaController::class,'create']); - Route::post('MstJenisBelanja/{id}/datatable-sub', [MstSubJenisBelanjaController::class,'datatable']); - Route::post('MstJenisBelanja/{id}/store-sub', [MstSubJenisBelanjaController::class,'store']); + Route::get('MstJenisBelanja/{MstJenisBelanja}/create-sub', [MstSubJenisBelanjaController::class, 'create']); + Route::post('MstJenisBelanja/{id}/datatable-sub', [MstSubJenisBelanjaController::class, 'datatable']); + Route::post('MstJenisBelanja/{id}/store-sub', [MstSubJenisBelanjaController::class, 'store']); Route::resource('MstSubJenisBelanja', MstSubJenisBelanjaController::class); - - Route::post('MstSatuan/datatable', [MstSatuanController::class,'datatable']); + + Route::post('MstSatuan/datatable', [MstSatuanController::class, 'datatable']); Route::resource('MstSatuan', MstSatuanController::class); - Route::get('Pengaturan', [PengaturanController::class,'index']); - Route::post('Pengaturan/update-user', [PengaturanController::class,'updateuser']); - Route::post('Pengaturan/adjust-anggaran', [PengaturanController::class,'rekonAnggaran']); - Route::post('Pengaturan/adjust-akb-pendapatan', [PengaturanController::class,'adjustAKBPendapatan']); + Route::get('Pengaturan', [PengaturanController::class, 'index']); + Route::post('Pengaturan/update-user', [PengaturanController::class, 'updateuser']); + Route::post('Pengaturan/adjust-anggaran', [PengaturanController::class, 'rekonAnggaran']); + Route::post('Pengaturan/adjust-akb-pendapatan', [PengaturanController::class, 'adjustAKBPendapatan']); - }); - - Route::group(['prefix' => 'data-omspan'], function () { - Route::get('/', [DataBosOmspanController::class,'index']); - Route::get('/upload', [DataBosOmspanController::class,'upload']); - Route::post('/upload', [DataBosOmspanController::class,'upload']); - Route::post('/upload/datatable', [DataBosOmspanController::class,'uploadDatatable']); - Route::post('/datatable', [DataBosOmspanController::class,'datatable']); - Route::get('/upload/proses', [DataBosOmspanController::class,'uploadValidate']); - }); - - Route::get('users/change-password/{userId}', [MstPenggunaController::class,'changePass'])->name("users.changepass"); - Route::post('users/change-password/{userId}', [MstPenggunaController::class,'changePassSubmit'])->name("users.changepass.submit"); - - Route::group(['prefix' => 'admin', 'middleware'=>'role:admin|superadmin'], function () { Route::resource('roless', RolessController::class); - Route::post('roless/permissions/{roleId}', [RolessController::class,'permissions'])->name("roless.permissions"); + Route::post('roless/permissions/{roleId}', [RolessController::class, 'permissions'])->name("roless.permissions"); Route::resource('permissions', PermissionsController::class); }); + // DATA OMSPAN ================================================= + Route::group(['prefix' => 'data-omspan'], function () { + Route::get('/', [DataBosOmspanController::class, 'index']); + Route::get('/upload', [DataBosOmspanController::class, 'upload']); + Route::post('/upload', [DataBosOmspanController::class, 'upload']); + Route::post('/upload/datatable', [DataBosOmspanController::class, 'uploadDatatable']); + Route::post('/datatable', [DataBosOmspanController::class, 'datatable']); + Route::get('/upload/proses', [DataBosOmspanController::class, 'uploadValidate']); + }); + + Route::get('users/change-password/{userId}', [MstPenggunaController::class, 'changePass'])->name("users.changepass"); + Route::post('users/change-password/{userId}', [MstPenggunaController::class, 'changePassSubmit'])->name("users.changepass.submit"); + // JADWAL SALUR ================================================ Route::group(['prefix' => 'jadwal-salurdana'], function () { - Route::get('/', [JadwalSalurdanaController::class,'index']); - Route::post('/', [JadwalSalurdanaController::class,'download']); - Route::post('/download-all', [JadwalSalurdanaController::class,'downloadAll']); - Route::post('/datatable-salur', [JadwalSalurdanaController::class,'datatableSalur']); - Route::post('/datatable-belanja', [JadwalSalurdanaController::class,'datatableBelanja']); + Route::get('/', [JadwalSalurdanaController::class, 'index']); + Route::post('/', [JadwalSalurdanaController::class, 'download']); + Route::post('/download-all', [JadwalSalurdanaController::class, 'downloadAll']); + Route::post('/datatable-salur', [JadwalSalurdanaController::class, 'datatableSalur']); + Route::post('/datatable-belanja', [JadwalSalurdanaController::class, 'datatableBelanja']); }); - + // PENDAPATAN ================================================== Route::group(['prefix' => 'realisasi-pendapatan'], function () { - Route::post('/datatable', [RealisasiPendapatanController::class,'datatable']); - Route::delete('/sts-delete/{stsId}', [RealisasiPendapatanController::class,'deleteSts']); - Route::post('/{realisasiId}/sts', [RealisasiPendapatanController::class,'sts']); - Route::get('/{realisasi}/download-sts', [RealisasiPendapatanController::class,'downloadSts']); - Route::get('/rinci-dbh', [RealisasiPendapatanController::class,'rinciDBH']); - Route::post('/download', [RealisasiPendapatanController::class,'download']); + Route::post('/datatable', [RealisasiPendapatanController::class, 'datatable']); + Route::delete('/sts-delete/{stsId}', [RealisasiPendapatanController::class, 'deleteSts']); + Route::post('/{realisasiId}/sts', [RealisasiPendapatanController::class, 'sts']); + Route::get('/{realisasi}/download-sts', [RealisasiPendapatanController::class, 'downloadSts']); + Route::get('/rinci-dbh', [RealisasiPendapatanController::class, 'rinciDBH']); + Route::post('/download', [RealisasiPendapatanController::class, 'download']); }); Route::resource('realisasi-pendapatan', RealisasiPendapatanController::class); - Route::get('SisaSalurDana', [SisaSalurDanaController::class,'index']); - Route::post('SisaSalurDana/datatable', [SisaSalurDanaController::class,'datatable']); + // SISA SALUR DANA ============================================= + Route::get('SisaSalurDana', [SisaSalurDanaController::class, 'index']); + Route::post('SisaSalurDana/datatable', [SisaSalurDanaController::class, 'datatable']); Route::resource('SisaSalurDana', SisaSalurDanaController::class); - Route::get('SisaSalurDana/{SisaSalurDana}/create-sub', [SisaSalurDanaController::class,'create']); - Route::post('SisaSalurDana/{id}/datatable-sub', [SisaSalurDanaController::class,'datatable']); - Route::post('SisaSalurDana/{id}', [SisaSalurDanaController::class,'store']); - Route::get('SisaSalurDana/download/{id}', [SisaSalurDanaController::class,'download']); + Route::get('SisaSalurDana/{SisaSalurDana}/create-sub', [SisaSalurDanaController::class, 'create']); + Route::post('SisaSalurDana/{id}/datatable-sub', [SisaSalurDanaController::class, 'datatable']); + Route::post('SisaSalurDana/{id}', [SisaSalurDanaController::class, 'store']); + Route::get('SisaSalurDana/download/{id}', [SisaSalurDanaController::class, 'download']); // BELANJA ===================================================== Route::group(['prefix' => 'upload-realisasi-belanja'], function () { - Route::get('/{typeDana}', [RealisasiBelanjaController::class,'upload']); - Route::post('/{typeDana}', [RealisasiBelanjaController::class,'upload']); - Route::post('/{typeDana}/datatable', [RealisasiBelanjaController::class,'uploadDatatable']); - Route::get('/{typeDana}/upload', [RealisasiBelanjaController::class,'uploadValidate']); + Route::get('/{typeDana}', [RealisasiBelanjaController::class, 'upload']); + Route::post('/{typeDana}', [RealisasiBelanjaController::class, 'upload']); + Route::post('/{typeDana}/datatable', [RealisasiBelanjaController::class, 'uploadDatatable']); + Route::get('/{typeDana}/upload', [RealisasiBelanjaController::class, 'uploadValidate']); }); Route::group(['prefix' => 'realisasi-belanja'], function () { - Route::get('/create-from-rsk', [RealisasiBelanjaController::class,'createFromRsk']); - Route::post('/create-from-rsk/datatable', [RealisasiBelanjaController::class,'createFromRskDatatable']); + Route::get('/create-from-rsk', [RealisasiBelanjaController::class, 'createFromRsk']); + Route::post('/create-from-rsk/datatable', [RealisasiBelanjaController::class, 'createFromRskDatatable']); - Route::post('/datatable', [RealisasiBelanjaController::class,'datatable']); - Route::post('/{id}/inputrealisasi-datatable', [RealisasiBelanjaController::class,'datatableInputRealisasi']); - Route::get('/{id}/submit', [RealisasiBelanjaController::class,'submit']); - Route::post('/{id}/submit', [RealisasiBelanjaController::class,'submit']); - Route::post('/{BelanjaRealisasi}/submit-akb', [RealisasiBelanjaController::class,'submit_akb_spd']); - Route::post('/{BelanjaRealisasi}/submit-kontrak', [RealisasiBelanjaController::class,'submit_kontrak']); - Route::post('/{BelanjaRealisasi}/submit-realisasi', [RealisasiBelanjaController::class,'submit_realisasi']); - Route::get('/{id}/inputRealisasi', [RealisasiBelanjaController::class,'inputRealisasi']); - Route::post('/{id}/inputRealisasi', [RealisasiBelanjaController::class,'inputRealisasi']); - Route::delete('/delete-detail/{id}', [RealisasiBelanjaController::class,'deleteDetail']); - Route::post('/download', [RealisasiBelanjaController::class,'download']); - Route::post('/{id}/realisasi-dau', [RealisasiBelanjaController::class,'realisasiDau']); + Route::post('/datatable', [RealisasiBelanjaController::class, 'datatable']); + Route::post('/{id}/inputrealisasi-datatable', [RealisasiBelanjaController::class, 'datatableInputRealisasi']); + Route::get('/{id}/submit', [RealisasiBelanjaController::class, 'submit']); + Route::post('/{id}/submit', [RealisasiBelanjaController::class, 'submit']); + Route::post('/{BelanjaRealisasi}/submit-akb', [RealisasiBelanjaController::class, 'submit_akb_spd']); + Route::post('/{BelanjaRealisasi}/submit-kontrak', [RealisasiBelanjaController::class, 'submit_kontrak']); + Route::post('/{BelanjaRealisasi}/submit-realisasi', [RealisasiBelanjaController::class, 'submit_realisasi']); + Route::get('/{id}/inputRealisasi', [RealisasiBelanjaController::class, 'inputRealisasi']); + Route::post('/{id}/inputRealisasi', [RealisasiBelanjaController::class, 'inputRealisasi']); + Route::delete('/delete-detail/{id}', [RealisasiBelanjaController::class, 'deleteDetail']); + Route::post('/download', [RealisasiBelanjaController::class, 'download']); + Route::post('/{id}/realisasi-dau', [RealisasiBelanjaController::class, 'realisasiDau']); - Route::get('/{id}/kontrak', [RealisasiBelanjaController::class,'kontrak']); - Route::post('/{id}/kontrak', [RealisasiBelanjaController::class,'kontrak']); - Route::delete('/{id}/kontrak', [RealisasiBelanjaController::class,'destroyKontrak']); - Route::get('/{idKontrak}/kontrak/update', [RealisasiBelanjaController::class,'kontrakUpdate']); - Route::put('/{idKontrak}/kontrak', [RealisasiBelanjaController::class,'kontrakUpdate']); - Route::get('/{kode}/download-kontrak', [RealisasiBelanjaController::class,'downloadKontrak']); + Route::get('/{id}/kontrak', [RealisasiBelanjaController::class, 'kontrak']); + Route::post('/{id}/kontrak', [RealisasiBelanjaController::class, 'kontrak']); + Route::delete('/{id}/kontrak', [RealisasiBelanjaController::class, 'destroyKontrak']); + Route::get('/{idKontrak}/kontrak/update', [RealisasiBelanjaController::class, 'kontrakUpdate']); + Route::put('/{idKontrak}/kontrak', [RealisasiBelanjaController::class, 'kontrakUpdate']); + Route::get('/{kode}/download-kontrak', [RealisasiBelanjaController::class, 'downloadKontrak']); - Route::get('/{idKontrak}/bast', [RealisasiBelanjaController::class,'bast']); - Route::delete('/{idKontrak}/bast', [RealisasiBelanjaController::class,'destroyBast']); - Route::get('/{idKontrak}/bast/add', [RealisasiBelanjaController::class,'bastCreate']); - Route::post('/{idKontrak}/bast/add', [RealisasiBelanjaController::class,'bastCreate']); - Route::get('/{kode}/download-bast', [RealisasiBelanjaController::class,'downloadBast']); + Route::get('/{idKontrak}/bast', [RealisasiBelanjaController::class, 'bast']); + Route::delete('/{idKontrak}/bast', [RealisasiBelanjaController::class, 'destroyBast']); + Route::get('/{idKontrak}/bast/add', [RealisasiBelanjaController::class, 'bastCreate']); + Route::post('/{idKontrak}/bast/add', [RealisasiBelanjaController::class, 'bastCreate']); + Route::get('/{kode}/download-bast', [RealisasiBelanjaController::class, 'downloadBast']); - Route::get('/{id}/ubah-spd', [RealisasiBelanjaController::class,'ubahSPD']); - Route::post('/{id}/ubah-spd', [RealisasiBelanjaController::class,'ubahSPD']); + Route::get('/{id}/ubah-spd', [RealisasiBelanjaController::class, 'ubahSPD']); + Route::post('/{id}/ubah-spd', [RealisasiBelanjaController::class, 'ubahSPD']); }); Route::resource('realisasi-belanja', RealisasiBelanjaController::class); - + + // GENERAL USER ROUTES ========================================= Route::get('home', [HomeController::class, 'index'])->name('home'); - Route::get('skpd-search', [ItemSearchController::class,'skpd']); - Route::get('item-search-prog', [ItemSearchController::class,'prog']); - Route::get('item-search-keg', [ItemSearchController::class,'keg']); - Route::get('item-search-sk', [ItemSearchController::class,'sk']); - Route::get('item-search-rsk', [ItemSearchController::class,'rsk']); - Route::get('item-search-sps', [ItemSearchController::class,'sps']); - Route::get('item-search-sts', [ItemSearchController::class,'sts']); - Route::get('item-search-sp2d', [ItemSearchController::class,'sp2d']); - Route::get('item-search-jenisbelanja', [ItemSearchController::class,'jenisBelanja']); - Route::get('item-search-subjenisbelanja', [ItemSearchController::class,'subjenisBelanja']); - Route::get('item-search-subjenisdana', [ItemSearchController::class,'subjenisDana']); - Route::get('item-search-rekening', [ItemSearchController::class,'rek_dana']); - Route::get('item-search-dau-rinci', [ItemSearchController::class,'dau_rinci']); - Route::post('item-search-dau-rinci-detail', [ItemSearchController::class,'dau_rinci_detail']); - Route::post('role-list', [MstPenggunaController::class,'roleList']); + Route::get('skpd-search', [ItemSearchController::class, 'skpd']); + Route::get('item-search-prog', [ItemSearchController::class, 'prog']); + Route::get('item-search-keg', [ItemSearchController::class, 'keg']); + Route::get('item-search-sk', [ItemSearchController::class, 'sk']); + Route::get('item-search-rsk', [ItemSearchController::class, 'rsk']); + Route::get('item-search-sps', [ItemSearchController::class, 'sps']); + Route::get('item-search-sts', [ItemSearchController::class, 'sts']); + Route::get('item-search-sp2d', [ItemSearchController::class, 'sp2d']); + Route::get('item-search-jenisbelanja', [ItemSearchController::class, 'jenisBelanja']); + Route::get('item-search-subjenisbelanja', [ItemSearchController::class, 'subjenisBelanja']); + Route::get('item-search-subjenisdana', [ItemSearchController::class, 'subjenisDana']); + Route::get('item-search-rekening', [ItemSearchController::class, 'rek_dana']); + Route::get('item-search-dau-rinci', [ItemSearchController::class, 'dau_rinci']); + Route::post('item-search-dau-rinci-detail', [ItemSearchController::class, 'dau_rinci_detail']); + Route::post('role-list', [MstPenggunaController::class, 'roleList']); Route::get('logout', [AuthController::class, 'logout'])->name('logout'); + // NOTIFIKASI ================================================== Route::group(['prefix' => 'notif'], function () { - Route::post('/datatable', [NotifikasiController::class,'datatable']); + Route::post('/datatable', [NotifikasiController::class, 'datatable']); Route::post('/get-notif', [NotifikasiController::class, 'getNotif']); }); Route::resource('notif', NotifikasiController::class); Route::get('tahun-anggaran/{ta}', [HomeController::class, 'ta']); - // PENDAPATAN ================================================== + // LAPORAN FILE ================================================ Route::group(['prefix' => 'laporan-file'], function () { - Route::post('/datatable', [LaporanFileController::class,'datatable']); - Route::get('/{kode}/download', [LaporanFileController::class,'download']); + Route::post('/datatable', [LaporanFileController::class, 'datatable']); + Route::get('/{kode}/download', [LaporanFileController::class, 'download']); }); Route::resource('laporan-file', LaporanFileController::class); Route::get('manual-book', [HomeController::class, 'downloadManual']);