validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:6', ]); User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), 'role' => 'user', // Default user biasa ]); return redirect()->route('auth')->with('success', 'Registrasi berhasil! Silakan login.'); } public function login(Request $request) { $credentials = $request->validate([ 'email' => 'required|email', 'password' => 'required' ]); $user = User::where('email', $request->email)->first(); if ($user && Hash::check($request->password, $user->password)) { Auth::login($user); if ($user->role === 'admin') { return redirect()->route('admin.dashboard'); // Redirect admin ke dashboard } return redirect()->route('home'); // Redirect user biasa } return back()->withErrors(['email' => 'Email atau password salah']); } public function updateProfil(Request $request) { $user = Auth::user(); $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|max:255|unique:users,email,' . $user->id, 'current_password' => 'nullable|string', 'new_password' => 'nullable|string|min:6|confirmed', ], [ 'new_password.confirmed' => 'Konfirmasi password baru tidak cocok.', ]); $user->name = $request->name; $user->email = $request->email; if ($request->filled('current_password') || $request->filled('new_password')) { if (!Hash::check($request->current_password, $user->password)) { return back()->withErrors(['current_password' => 'Password lama salah.']); } if ($request->filled('new_password')) { $user->password = Hash::make($request->new_password); } } $user->save(); return back()->with('success', 'Profil berhasil diperbarui.'); } public function update(Request $request, $id) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users,email,' . $id, ]); $user = User::findOrFail($id); $user->update([ 'name' => $request->name, 'email' => $request->email, ]); return redirect()->route('admin.user.index')->with('success', 'Data pengguna berhasil diperbarui.'); } public function logout() { Auth::logout(); return redirect()->route('auth')->with('success', 'Berhasil logout.'); } }