diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index d116d2c..2e0459f 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -18,37 +18,33 @@ public function showLogin() } /** - * Proses login. + * Proses login (bisa dengan Email atau NIS). */ public function login(Request $request) { // Validasi input $request->validate([ - 'email' => 'required|email', - 'password' => 'required', + 'identifier' => 'required', // Bisa Email atau NIS + 'password' => 'required', ]); - // Ambil kredensial - $credentials = $request->only('email', 'password'); + // Coba autentikasi menggunakan Email atau NIS + $credentials = [ + filter_var($request->identifier, FILTER_VALIDATE_EMAIL) ? 'email' : 'nis' => $request->identifier, + 'password' => $request->password, + ]; - // Coba autentikasi menggunakan kredensial if (Auth::attempt($credentials)) { - // Regenerasi session untuk menghindari session fixation $request->session()->regenerate(); - - // Ambil data user yang telah login $user = Auth::user(); - // Redirect sesuai role user - if ($user->role === 'admin') { - return redirect()->route('admin.dashboard')->with('success', 'Selamat datang Admin!'); - } else { - return redirect()->route('dashboardSantri')->with('success', 'Selamat datang Santri!'); - } + // Redirect berdasarkan role + return $user->role === 'admin' + ? redirect()->route('admin.dashboard')->with('success', 'Selamat datang Admin!') + : redirect()->route('dashboardSantri')->with('success', 'Selamat datang Santri!'); } - // Jika autentikasi gagal, kembalikan ke halaman login dengan error - return back()->withErrors(['email' => 'Email / Password salah.']); + return back()->withErrors(['identifier' => 'NIS/Email atau Password salah.']); } /** @@ -76,30 +72,30 @@ public function showRegister() */ public function register(Request $request) { - // Validasi input pendaftaran + // Validasi input $request->validate([ - 'name' => 'required|string|max:255', - 'nis' => 'required|string|max:50|unique:users,nis', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - 'jenis_kelamin' => 'required|in:Laki-laki,Perempuan', - 'asal_daerah' => 'required|in:dalamProvinsi,luarProvinsi', + 'name' => 'required|string|max:255', + 'nis' => 'required|string|max:50|unique:users,nis', + 'email' => 'required|email|unique:users,email', + 'password' => 'required|min:6', + 'jenis_kelamin' => 'required|in:Laki-laki,Perempuan', + 'asal_daerah' => 'required|in:dalamProvinsi,luarProvinsi', ]); - // Buat user baru dengan role "santri" + // Buat user baru $user = User::create([ - 'name' => $request->name, - 'nis' => $request->nis, - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'santri', - 'jenis_kelamin' => $request->jenis_kelamin, - 'asal_daerah' => $request->asal_daerah, + 'name' => $request->name, + 'nis' => $request->nis, + 'email' => $request->email, + 'password' => Hash::make($request->password), + 'role' => 'santri', + 'jenis_kelamin' => $request->jenis_kelamin, + 'asal_daerah' => $request->asal_daerah, ]); - // Login user secara otomatis + // Login otomatis setelah register Auth::login($user); - return redirect()->route('dashboardSantri')->with('success', 'Pendaftaran Santri berhasil!'); + return redirect()->route('dashboardSantri')->with('success', 'Pendaftaran berhasil!'); } } diff --git a/resources/views/pages/auth/login.blade.php b/resources/views/pages/auth/login.blade.php index 4f91ddd..4081f0c 100644 --- a/resources/views/pages/auth/login.blade.php +++ b/resources/views/pages/auth/login.blade.php @@ -1,6 +1,7 @@ @extends('layouts.app-none') @section('title', 'Login | SR Klasifikasi') @section('content') +
@@ -20,29 +21,35 @@ {{-- Tampilkan error jika ada --}} @if($errors->any()) -
-
    - @foreach($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
+ @endif @if(session('success')) -
- {{ session('success') }} -
+ @endif
@csrf
- +
- -
Masukkan Email Anda
+ +
Masukkan NIS atau Email Anda
@@ -51,7 +58,6 @@
- @@ -94,4 +100,5 @@ } }); + @endsection \ No newline at end of file