add: Seperate dashboards for all types of users
This commit is contained in:
@@ -2,31 +2,65 @@
|
||||
|
||||
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 () {
|
||||
return view('dashboard');
|
||||
// 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';
|
||||
require __DIR__ . '/auth.php';
|
||||
|
||||
Reference in New Issue
Block a user