190 lines
9.6 KiB
PHP
190 lines
9.6 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\AuthController;
|
|
use App\Http\Controllers\Author\PostController as AuthorPostController;
|
|
use App\Http\Controllers\DataUserController;
|
|
use App\Http\Controllers\DataCategoryController;
|
|
use App\Http\Controllers\ForgotPasswordController;
|
|
use App\Http\Controllers\PostController;
|
|
use App\Http\Controllers\PostApprovalController;
|
|
use App\Http\Controllers\AlternatifController;
|
|
use App\Http\Controllers\LoginController;
|
|
use App\Http\Controllers\BobotKriteriaController;
|
|
use App\Http\Controllers\PenilaianController;
|
|
use App\Http\Controllers\KriteriaController;
|
|
use App\Http\Controllers\BobotController;
|
|
use App\Http\Controllers\LaporanController;
|
|
use App\Http\Controllers\StatistikController;
|
|
use App\Http\Controllers\LogAktivitasController;
|
|
use App\Http\Controllers\UserController;
|
|
use App\Http\Controllers\RekomendasiController;
|
|
|
|
use Illuminate\Foundation\Auth\SendEmail;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use PharIo\Manifest\Author;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\User;
|
|
|
|
// Rute untuk autentikasi
|
|
Route::prefix('/')->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');
|