MIF_E31230356/routes/web.php

89 lines
3.2 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Admin\LoginController;
use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\GuruController;
use App\Http\Controllers\SiswaController;
use App\Http\Controllers\KelasController;
use App\Http\Controllers\MapelController;
use App\Http\Controllers\ChallengeController;
use App\Http\Controllers\LeaderboardController;
// ====================
// LANDING PAGE
// ====================
Route::get('/', function () {
return view('auth.landing-page');
})->name('landing-page');
// ====================
// LOGIN ROUTES (VIEW)
// ====================
Route::prefix('admin')->group(function () {
// Halaman login (GET)
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('admin.login');
// Proses login (POST)
Route::post('/login', [LoginController::class, 'login'])->name('admin.login.submit');
// Dashboard admin (GET)
Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('admin.dashboard')->middleware('auth:admin');
// Logout admin
Route::post('/logout', [LoginController::class, 'logout'])->name('admin.logout');
});
Route::get('/login/guru', [LoginController::class, 'showLoginForm'])->name('login.guru');
Route::get('/login/siswa', [LoginController::class, 'showLoginForm'])->name('login.siswa');
// ====================
// LOGIN PROSES
// ====================
Route::post('/admin/login', [LoginController::class, 'login'])->name('admin.login.submit');
// Guru login
Route::post('/guru/login', function (Request $request) {
$credentials = $request->only('nip', 'password');
if (Auth::guard('guru')->attempt($credentials)) {
return redirect()->route('guru.dashboard');
}
return back()->withErrors(['nip' => 'NIP atau password salah']);
})->name('guru.login.submit');
// Siswa login
Route::post('/siswa/login', function (Request $request) {
$credentials = $request->only('nisn', 'password');
if (Auth::guard('siswa')->attempt($credentials)) {
return redirect()->route('siswa.dashboard');
}
return back()->withErrors(['nisn' => 'NISN atau password salah']);
})->name('siswa.login.submit');
// ====================
// ADMIN AREA
// ====================
Route::middleware(['auth:admin'])->prefix('admin')->name('admin.')->group(function () {
Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard');
Route::resource('guru', GuruController::class);
Route::resource('siswa', SiswaController::class);
Route::resource('kelas', KelasController::class);
Route::resource('mapel', MapelController::class);
Route::resource('challenge', ChallengeController::class);
Route::get('leaderboard', [LeaderboardController::class, 'index'])->name('leaderboard.index');
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
});
// ====================
// GURU & SISWA DASHBOARD (sementara)
// ====================
Route::get('/guru/dashboard', fn() => view('guru.dashboard'))->name('guru.dashboard');
Route::get('/siswa/dashboard', fn() => view('siswa.dashboard'))->name('siswa.dashboard');
require __DIR__.'/auth.php';