middleware('auth'); // Middleware hanya untuk admin yang mengakses destroy $this->middleware('admin')->only(['destroy']); } /** * Menampilkan halaman daftar pengguna dan admin */ public function index() { $pengguna = User::where('tipe_pengguna', 'admin')->get(); // Ambil admin $users = User::where('tipe_pengguna', 'user')->get(); // Ambil user biasa $activeTab = 'user'; return view('pengguna', compact('pengguna', 'users', 'activeTab')); } /** * Menghapus pengguna (user biasa saja) */ public function destroy($id) { try { $user = User::findOrFail($id); if ($user->tipe_pengguna !== 'user') { return redirect()->back()->with('error', 'Anda hanya dapat menghapus akun user biasa melalui menu ini'); } $user->delete(); return redirect()->route('users')->with('success', 'Pengguna berhasil dihapus'); } catch (\Exception $e) { Log::error('Error saat menghapus pengguna: ' . $e->getMessage()); return redirect()->back()->with('error', 'Terjadi kesalahan saat menghapus pengguna'); } } /** * Menampilkan form tambah pengguna (opsional) */ public function create() { return view('tambah-pengguna'); } /** * Menyimpan pengguna baru (admin) */ public function store(Request $request) { $request->validate([ 'nama' => 'required|string|max:255', 'username' => 'required|string|max:255|unique:users', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', 'alamat' => 'nullable|string', 'no_telp' => 'nullable|string|max:20', ]); User::create([ 'nama' => $request->nama, 'username' => $request->username, 'email' => $request->email, 'role' => 'customer', // atau 'admin' jika pakai role 'password' => bcrypt($request->password), 'alamat' => $request->alamat, 'no_telp' => $request->no_telp, 'tipe_pengguna' => 'admin', ]); return redirect()->route('users')->with('success', 'Admin berhasil ditambahkan'); } }