paginate(10); return view('users.index', compact('users')); } /** * Formularz edycji wybranego użytkownika. */ public function edit(User $user) { $roles = Role::all(); return view('users.edit', compact('user', 'roles')); } /** * Zapis zmian danych oraz ról użytkownika. */ public function update(Request $request, User $user) { $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'surname' => ['required', 'string', 'max:255'], 'email' => ['required', 'email', 'max:255', Rule::unique('users')->ignore($user->id)], 'roles' => ['nullable', 'array'], 'roles.*' => ['string', 'exists:roles,name'], ]); $user->update([ 'name' => $validated['name'], 'surname' => $validated['surname'], 'email' => $validated['email'], ]); // Synchronizuje przekazane role (jeśli nic nie zaznaczono, przekazuje pustą tablicę) $user->syncRoles($request->input('roles', [])); return redirect()->route('users.index')->with('status', 'Użytkownik został zaktualizowany.'); } /** * Usuwanie użytkownika. */ public function destroy(User $user) { // Blokada usunięcia samego siebie if (auth()->id() === $user->id) { return redirect()->back()->with('error', 'Nie możesz usunąć własnego konta!'); } $user->delete(); return redirect()->route('users.index')->with('status', 'Użytkownik został usunięty.'); } }