132 lines
3.8 KiB
PHP
132 lines
3.8 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 PAGES (VIEW ONLY)
|
|
// =======================================================
|
|
|
|
// Selector login (opsional)
|
|
Route::get('/login', function () {
|
|
return view('auth.login-selector');
|
|
})->name('login.selector');
|
|
|
|
// LOGIN ADMIN
|
|
Route::get('/admin/login', function () {
|
|
return view('auth.login-admin');
|
|
})->name('admin.login');
|
|
|
|
// LOGIN GURU
|
|
Route::get('/guru/login', function () {
|
|
return view('auth.login-guru');
|
|
})->name('guru.login');
|
|
|
|
// LOGIN SISWA
|
|
Route::get('/siswa/login', function () {
|
|
return view('auth.login-siswa');
|
|
})->name('siswa.login');
|
|
|
|
|
|
// =======================================================
|
|
// PROSES LOGIN (POST)
|
|
// =======================================================
|
|
|
|
// ADMIN LOGIN PROCESS
|
|
Route::post('/admin/login', [LoginController::class, 'loginAdmin'])
|
|
->name('admin.login.submit');
|
|
|
|
// GURU LOGIN PROCESS
|
|
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 PROCESS
|
|
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 (HARUS LOGIN ADMIN)
|
|
// =======================================================
|
|
Route::middleware(['auth:admin'])->prefix('admin')->name('admin.')->group(function () {
|
|
|
|
Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard');
|
|
|
|
Route::get('/notif', function () {
|
|
return view('admin.notif');
|
|
})->name('notif');
|
|
|
|
Route::get('/profil', function () {
|
|
return view('admin.profil');
|
|
})->name('profil');
|
|
|
|
// CRUD AREA
|
|
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');
|
|
|
|
// LOGOUT ADMIN
|
|
Route::post('/logout', [LoginController::class, 'logout'])
|
|
->name('logout');
|
|
});
|
|
|
|
|
|
// =======================================================
|
|
// GURU AREA
|
|
// =======================================================
|
|
Route::middleware(['auth:guru'])->group(function () {
|
|
Route::get('/guru/dashboard', function () {
|
|
return view('guru.dashboard');
|
|
})->name('guru.dashboard');
|
|
});
|
|
|
|
|
|
// =======================================================
|
|
// SISWA AREA
|
|
// =======================================================
|
|
Route::middleware(['auth:siswa'])->group(function () {
|
|
Route::get('/siswa/dashboard', function () {
|
|
return view('siswa.dashboard');
|
|
})->name('siswa.dashboard');
|
|
});
|
|
|