Fix: set unauthenticated redirect URL to include subpath prefix

This commit is contained in:
2026-08-30 12:59:02 +07:00
parent baa2f611c1
commit 2e9257f601
2 changed files with 122 additions and 101 deletions
+5 -1
View File
@@ -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');
}
}
}
+117 -100
View File
@@ -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']);