middleware('auth'); $this->middleware(\App\Http\Middleware\CheckRole::class . ':admin'); } public function index() { $users = User::latest()->get(); return view('admin.users.index', compact('users')); } public function create() { return view('admin.users.create'); } public function store(Request $request) { $request->validate([ 'username' => 'required|string|max:255|unique:users', 'nama' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8', 'role' => 'required|in:admin,customer', ]); User::create([ 'username' => $request->username, 'nama' => $request->nama, 'email' => $request->email, 'password' => Hash::make($request->password), 'role' => $request->role, ]); return redirect()->route('admin.users.index') ->with('success', 'User berhasil ditambahkan'); } public function show(User $user) { return view('admin.users.show', compact('user')); } public function edit(User $user) { return view('admin.users.edit', compact('user')); } public function update(Request $request, User $user) { $request->validate([ 'username' => 'required|string|max:255|unique:users,username,' . $user->id, 'nama' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users,email,' . $user->id, 'role' => 'required|in:admin,customer', ]); $user->update([ 'username' => $request->username, 'nama' => $request->nama, 'email' => $request->email, 'role' => $request->role, ]); if ($request->filled('password')) { $user->update([ 'password' => Hash::make($request->password), ]); } return redirect()->route('admin.users.index') ->with('success', 'User berhasil diupdate'); } public function destroy(User $user) { $user->delete(); return redirect()->route('admin.users.index') ->with('success', 'User berhasil dihapus'); } }