diff --git a/app/Http/Controllers/Guru/LoginController.php b/app/Http/Controllers/Guru/LoginController.php index 70babd2..746b9bf 100644 --- a/app/Http/Controllers/Guru/LoginController.php +++ b/app/Http/Controllers/Guru/LoginController.php @@ -17,6 +17,7 @@ public function showLoginForm() // Proses login public function login(Request $request) { + // Validasi input $request->validate([ 'nip' => 'required', 'password' => 'required', @@ -24,18 +25,20 @@ public function login(Request $request) $credentials = $request->only('nip', 'password'); + // Attempt login dengan guard 'guru' if (Auth::guard('guru')->attempt($credentials)) { $request->session()->regenerate(); - + return redirect()->intended(route('guru.dashboard')); } + // Kalau gagal login return back()->withErrors([ - 'nip' => 'NIP atau password salah' - ])->withInput($request->except('password')); + 'nip' => 'NIP atau password salah!', + ])->withInput($request->only('nip')); } - // Logout + // Proses logout public function logout(Request $request) { Auth::guard('guru')->logout(); diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 3d13e1b..db906a6 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -3,27 +3,30 @@ namespace App\Http\Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware; +use Illuminate\Http\Request; class Authenticate extends Middleware { - /** - * Tentukan ke mana redirect jika user belum login. - */ - protected function redirectTo($request): ?string{ - if (! $request->expectsJson()) { - // Admin - if ($request->is('admin/*')) { - return route('admin.login'); + protected function redirectTo(Request $request): ?string + { + if (! $request->expectsJson()) { + // Cek guard mana yang dipake + if ($request->is('admin/*')) { + return route('admin.login'); + } + + if ($request->is('guru/*')) { + return route('guru.login'); + } + + if ($request->is('siswa/*')) { + return route('siswa.login'); + } + + // Default ke landing page + return route('landing-page'); } - - // Guru - if ($request->is('guru/*')) { - return route('guru.login'); - } - - // Default - return route('login'); + + return null; } - - return null; -}} +} \ No newline at end of file diff --git a/config/auth.php b/config/auth.php index 12d1a8b..afec1d7 100644 --- a/config/auth.php +++ b/config/auth.php @@ -38,16 +38,19 @@ 'guards' => [ 'web' => [ 'driver' => 'session', - 'provider' => 'user', + 'provider' => 'users', ], + 'admin' => [ 'driver' => 'session', - 'provider' => 'admin', + 'provider' => 'admins', ], + 'guru' => [ 'driver' => 'session', 'provider' => 'gurus', ], + 'siswa' => [ 'driver' => 'session', 'provider' => 'siswas', @@ -72,20 +75,23 @@ | */ - 'providers' => [ - 'user' => [ +'providers' => [ + 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], - 'admin' => [ + + 'admins' => [ 'driver' => 'eloquent', 'model' => App\Models\Admin::class, ], + 'gurus' => [ 'driver' => 'eloquent', 'model' => App\Models\Guru::class, ], - 'siswa' => [ + + 'siswas' => [ 'driver' => 'eloquent', 'model' => App\Models\Siswa::class, ], diff --git a/public/index.php b/public/index.php index ee8f07e..6e83460 100644 --- a/public/index.php +++ b/public/index.php @@ -1,5 +1,7 @@ -
NIP: {{ Auth::guard('guru')->user()->nip }}
-