middleware('guest')->group(function () { // Login routes Route::get('login', [AuthController::class, 'showLoginForm'])->name('login'); Route::post('login', [AuthController::class, 'login'])->name('login.process'); // Register routes Route::get('register', [AuthController::class, 'showRegister'])->name('register'); Route::post('register', [AuthController::class, 'register'])->name('register.process'); // Forgot password routes Route::prefix('forgot-password')->name('forgot_password.')->group(function () { Route::get('/', [ForgotPasswordController::class, 'forgotPassword'])->name('index'); Route::post('/process', [ForgotPasswordController::class, 'forgotPasswordProcess'])->name('process'); }); // Token validation and reset password Route::prefix('validation-forgot-password')->name('validation_forgot_password.')->group(function () { Route::get('/{token}', [ForgotPasswordController::class, 'validationForgotPassword'])->name('index'); Route::post('/process', [ForgotPasswordController::class, 'validationForgotPasswordProcess'])->name('process'); }); }); // root URL ke halaman login Route::get('/', function () { return view('landing'); }); // Rute untuk dashboard dengan middleware 'auth' Route::middleware(['auth'])->group(function () { // Rute untuk profil pengguna Route::get('/profile', [App\Http\Controllers\UserController::class, 'showProfile'])->name('user.profile'); Route::put('/profile', [App\Http\Controllers\UserController::class, 'updateProfile'])->name('user.profile.update'); // Dashboard Routes Route::get('/admin/dashboard', [AuthController::class, 'adminDashboard'])->name('admin.dashboard-admin'); Route::get('/author/dashboard', [AuthController::class, 'authorDashboard'])->name('author.dashboard-author'); // Admin Routes Route::middleware(['auth', 'role:admin'])->prefix('admin')->group(function () { // Master Data Management Route::resource('kriteria', KriteriaController::class); Route::resource('bobot', BobotController::class); // Ubah route alternatif admin menjadi resource Route::resource('alternatif', AlternatifController::class)->names([ 'index' => 'admin.alternatif.index', 'create' => 'admin.alternatif.create', 'store' => 'admin.alternatif.store', 'edit' => 'admin.alternatif.edit', 'update' => 'admin.alternatif.update', 'destroy' => 'admin.alternatif.destroy', ]); // User Management Route::get('users', [DataUserController::class, 'DataUser'])->name('datauser'); Route::get('users/{id}/edit', [DataUserController::class, 'edit'])->name('users.edit'); Route::put('users/{id}', [DataUserController::class, 'update'])->name('users.update'); Route::delete('users/{id}', [DataUserController::class, 'destroy'])->name('users.destroy'); // Content Management Route::get('categories', [DataCategoryController::class, 'index'])->name('datacategory'); Route::post('categories', [DataCategoryController::class, 'store'])->name('categories.store'); Route::put('categories/{id}', [DataCategoryController::class, 'update'])->name('categories.update'); Route::delete('categories/{id}', [DataCategoryController::class, 'destroy'])->name('categories.destroy'); }); // Author Routes Route::middleware(['auth', 'role:author'])->prefix('author')->group(function () { Route::resource('alternatif', AlternatifController::class); Route::get('bobot-kriteria', [BobotKriteriaController::class, 'index'])->name('bobot.kriteria'); Route::get('penilaian', [PenilaianController::class, 'index'])->name('penilaian.index'); Route::get('hasil-penilaian', [PenilaianController::class, 'hasil'])->name('penilaian.hasil'); }); // Tambahkan route dashboard Route::get('/dashboard', function() { if (Auth::user()->role == 'admin') { return redirect()->route('admin.dashboard-admin'); } return redirect()->route('author.dashboard-author'); })->name('dashboard'); // Rute untuk logout Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // Rute untuk pengelolaan data pengguna Route::prefix('datauser')->group(function () { Route::get('/', [DataUserController::class, 'DataUser'])->name('datauser'); Route::get('/users/{id}/edit', [DataUserController::class, 'edit'])->name('users.edit'); Route::put('/users/{id}', [DataUserController::class, 'update'])->name('users.update'); }); // Rute untuk pengelolaan kategori Route::prefix('datacategory')->group(function () { Route::get('/', [DataCategoryController::class, 'index'])->name('datacategory'); Route::post('/categories', [DataCategoryController::class, 'store'])->name('categories.store'); Route::delete('/categories/{id}', [DataCategoryController::class, 'destroy'])->name('categories.destroy'); Route::put('/categories/{id}', [DataCategoryController::class, 'update'])->name('categories.update'); }); // Rute untuk rekomendasi Route::post('/rekomendasi', [RekomendasiController::class, 'index'])->name('rekomendasi'); Route::get('/rekomendasi', [RekomendasiController::class, 'index'])->name('user.rekomendasi.index'); Route::prefix('posts')->controller(AuthorPostController::class)->name('posts.')->group(function () { Route::get('/', 'index')->name('index'); Route::post('/', 'store')->name('store'); Route::put('/{id}', 'update')->name('update'); Route::delete('/{id}', 'destroy')->name('destroy'); }); Route::prefix('approval-posts')->controller(PostApprovalController::class)->name('approval-posts.')->group(function () { Route::get('/', 'index')->name('index'); Route::put('/{id}', 'approve')->name('approve'); Route::put('/reject/{id}', 'reject')->name('reject'); }); // Rute untuk bobot kriteria Route::prefix('bobot-kriteria')->group(function () { Route::get('/', [BobotKriteriaController::class, 'index'])->name('bobot.kriteria'); Route::post('/store', [BobotKriteriaController::class, 'store'])->name('bobot.kriteria.store'); Route::get('/edit/{id}', [BobotKriteriaController::class, 'edit'])->name('bobot-kriteria.edit'); Route::put('/update/{id}', [BobotKriteriaController::class, 'update'])->name('bobot-kriteria.update'); Route::delete('/destroy/{id}', [BobotKriteriaController::class, 'destroy'])->name('bobot-kriteria.destroy'); }); Route::prefix('kriteria')->group(function () { Route::get('/', [KriteriaController::class, 'index'])->name('kriteria.index'); Route::post('/store', [KriteriaController::class, 'store'])->name('kriteria.store'); Route::get('/edit/{id}', [KriteriaController::class, 'edit'])->name('kriteria.edit'); Route::put('/update/{id}', [KriteriaController::class, 'update'])->name('kriteria.update'); Route::delete('/destroy/{id}', [KriteriaController::class, 'destroy'])->name('kriteria.destroy'); }); Route::get('/penilaian', [PenilaianController::class, 'index'])->name('penilaian.index'); Route::post('/penilaian', [PenilaianController::class, 'store'])->name('penilaian.store'); Route::get('/penilaian/hasil', [PenilaianController::class, 'hasil'])->name('penilaian.hasil'); Route::delete('/penilaian/destroy', [PenilaianController::class, 'destroy'])->name('penilaian.destroy'); }); Route::get('/admin', function () { // Admin content })->middleware('role:admin'); // Contoh route yang mungkin Anda miliki Route::get('/author/alternatif', [AuthorController::class, 'alternatif'])->middleware('role:author'); // Atau jika mendefinisikan route secara manual Route::get('/alternatif', [AlternatifController::class, 'showAlternatif'])->name('alternatif.index'); Route::get('/alternatif/admin', [AlternatifController::class, 'admin'])->name('alternatif.admin'); Route::middleware(['auth', 'admin'])->group(function () { Route::get('/admin/penilaian', [PenilaianController::class, 'index'])->name('admin.penilaian.index'); Route::post('/admin/penilaian/store', [PenilaianController::class, 'store'])->name('penilaian.store'); Route::delete('/admin/penilaian/delete-all', [PenilaianController::class, 'deleteAll'])->name('penilaian.deleteAll'); }); Route::get('/input-data', [UserController::class, 'showInputData'])->name('user.input-data.index'); Route::post('/input-data', [UserController::class, 'processInputData'])->name('user.input-data.process');