Files
Faculty-Documentation/routes/web.php
2025-01-27 01:05:25 +05:30

69 lines
2.8 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');
Route::get('/admin/responses/data', [AdminController::class, 'getResponses'])->name('admin.responses.data');
});
// 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');
Route::get('/coordinator/responses/data', [CoordinatorController::class, 'getResponses'])->name('coordinator.responses.data');
});
// 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';