67 lines
2.5 KiB
PHP
67 lines
2.5 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\ProfileController;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\RoleController;
|
|
use App\Http\Controllers\DepartmentController;
|
|
use App\Http\Controllers\UserController;
|
|
use App\Http\Controllers\AdminController;
|
|
use App\Http\Controllers\CoordinatorController;
|
|
use App\Http\Controllers\FacultyController;
|
|
use App\Http\Middleware\CheckRole;
|
|
|
|
Route::get('/', function () {
|
|
return view('welcome');
|
|
});
|
|
|
|
Route::get('/dashboard', function () {
|
|
// Redirect users to different pages based on their role
|
|
$user = auth()->user();
|
|
|
|
if ($user->role->name === 'Admin') {
|
|
return redirect()->route('admin.dashboard');
|
|
} elseif ($user->role->name === 'Coordinator') {
|
|
return redirect()->route('coordinator.dashboard');
|
|
} elseif ($user->role->name === 'Faculty') {
|
|
return redirect()->route('faculty.dashboard');
|
|
} else {
|
|
return abort(403, 'Unauthorized');
|
|
}
|
|
})->middleware(['auth', 'verified'])->name('dashboard');
|
|
|
|
|
|
Route::middleware('auth')->group(function () {
|
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
|
});
|
|
|
|
// Admin routes
|
|
Route::middleware(['auth', CheckRole::class . ':Admin'])->group(function () {
|
|
Route::get('/admin', [AdminController::class, 'index'])->name('admin.dashboard');
|
|
Route::get('/admin/responses', [AdminController::class, 'viewResponses'])->name('admin.responses');
|
|
});
|
|
|
|
// Coordinator routes
|
|
Route::middleware(['auth', CheckRole::class . ':Coordinator'])->group(function () {
|
|
Route::get('/coordinator', [CoordinatorController::class, 'index'])->name('coordinator.dashboard');
|
|
Route::get('/coordinator/responses', [CoordinatorController::class, 'viewResponses'])->name('coordinator.responses');
|
|
});
|
|
|
|
|
|
// Faculty routes
|
|
Route::middleware(['auth', CheckRole::class . ':Faculty'])->group(function () {
|
|
Route::get('/faculty', [FacultyController::class, 'index'])->name('faculty.dashboard');
|
|
Route::get('/faculty/response-form', [FacultyController::class, 'responseForm'])->name('faculty.responseForm');
|
|
Route::post('/faculty/submit-response', [FacultyController::class, 'submitResponse'])->name('faculty.submitResponse');
|
|
});
|
|
|
|
// API Resources
|
|
Route::apiResources([
|
|
'roles' => RoleController::class,
|
|
'departments' => DepartmentController::class,
|
|
'users' => UserController::class,
|
|
]);
|
|
|
|
require __DIR__ . '/auth.php';
|