user(); if ($user->role == 'admin') { // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id $laporan = Pelaporan::with('tindakan','user')->get(); } elseif ($user->role == 'user') { // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut $riwayat = Pelaporan::where('user_id', $user->id)->get(); // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna $laporan = $riwayat->with('tindakan','user')->count(); } $users = User::query(); if ($request->has('search')) { $users->where('name', 'LIKE', '%' . $request->search . '%'); } $users = $users->get(); return view('admin.user.index', compact('users', 'laporan')); } public function create() { $laporan = Pelaporan::with('tindakan','user')->get(); return view('admin.user.create',compact('laporan')); } public function store(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', // Menambahkan aturan confirmed untuk konfirmasi password 'role' => 'required', ], [ 'name.required' => 'Nama wajib diisi', 'email.required' => 'Email wajib diisi', 'email.email' => 'Silahkan masukkan email yang valid', 'email.unique' => 'Email sudah pernah digunakan, silahkan pilih email yang lain', 'password.required' => 'Password wajib diisi', 'password.min' => 'Minimum password yang diizinkan 8 karakter', 'password.confirmed' => 'Konfirmasi password tidak sesuai dengan password', 'role.required' => 'Role wajib diisi', ]); $data = [ 'name' =>$request->name, 'email' =>$request->email, 'role' =>$request->role, 'password' => Hash::make($request->password) ]; User::create($data); return redirect()->route('user.index')->with('success', 'User berhasil ditambahkan.'); } public function edit($id) { $laporan = Pelaporan::with('tindakan','user')->get(); $users = User::find($id); return view('admin.user.update', compact('users', 'laporan')); } public function update(Request $request, $id) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users,email,' . $id, 'role' => 'required', ], [ 'name.required' => 'Nama wajib diisi', 'email.required' => 'Email wajib diisi', 'email.email' => 'Silahkan masukkan email yang valid', 'email.unique' => 'Email sudah pernah digunakan, silahkan pilih email yang lain', 'role.required' => 'Role wajib diisi', ]); $user = User::find($id); if (!$user) { return redirect()->route('user.index')->with('error', 'User tidak ditemukan.'); } $user->name = $request->name; $user->email = $request->email; $user->role = $request->role; // Periksa apakah password diisi sebelum diupdate if ($request->filled('password')) { $request->validate([ 'password' => 'required|min:8|confirmed', ], [ 'password.required' => 'Password wajib diisi', 'password.min' => 'Minimum password yang diizinkan 8 karakter', 'password.confirmed' => 'Konfirmasi password tidak sesuai dengan password', ]); $user->password = Hash::make($request->password); // Gunakan Hash::make untuk mengenkripsi password baru } $user->save(); return redirect()->route('user.index')->with('success', 'User berhasil diperbarui.'); } public function destroy($id) { $user = User::find($id); $user->delete(); return redirect()->route('user.index')->with('success', 'User berhasil dihapus.'); } }