role === 'admin' || $user->role === 'guru') { return redirect()->route('admin.dashboard'); } return redirect()->route('siswa.dashboard'); } return view('auth.login'); } // PROSES REGISTER PUBLIK (DIKUNCI: HANYA DIBUAT DENGAN ROLE SISWA) public function register(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8', ], [ 'email.unique' => 'Email ini sudah terdaftar. Silakan login.', 'password.min' => 'Password minimal 8 karakter.' ]); // Role dipaksa 'siswa' secara permanen dari server side $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'role' => 'siswa', ]); Auth::login($user); return redirect()->route('siswa.dashboard')->with('success', 'Akun berhasil dibuat!'); } public function login(Request $request) { $credentials = $request->validate([ 'email' => ['required', 'email'], 'password' => ['required'], ]); if (Auth::attempt($credentials)) { $request->session()->regenerate(); $user = Auth::user(); if ($user->role === 'admin' || $user->role === 'guru') { return redirect()->route('admin.dashboard'); } return redirect()->route('siswa.dashboard'); } return back()->withErrors([ 'email' => 'Email atau password yang Anda masukkan salah.', ])->onlyInput('email'); } public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/login'); } }