middleware('auth'); } public function index() { $usuarios = User::all(); return view('usuarios.index', compact('usuarios')); } public function create() { return view('usuarios.create'); } public function store(Request $request) { $datos = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|max:255|unique:users,email', 'password' => 'required|string|min:8|confirmed', ]); $usuario = new User(); $usuario->fill([ 'name' => $datos['name'], 'email' => $datos['email'], 'password' => $datos['password'], ]); $usuario->save(); return redirect()->route('usuarios.index') ->with('mensaje-success', 'Usuario registrado correctamente'); } public function show($id) { $usuario = User::findOrFail($id); return view('usuarios.show', compact('usuario')); } public function edit($id) { $usuario = User::findOrFail($id); return view('usuarios.edit', compact('usuario')); } public function update(Request $request, $id) { $usuario = User::findOrFail($id); $datos = $request->validate([ 'name' => 'required|string|max:255', 'email' => [ 'required', 'email', 'max:255', Rule::unique('users', 'email')->ignore($usuario->id), ], 'password' => 'nullable|string|min:8|confirmed', ]); $usuario->name = $datos['name']; $usuario->email = $datos['email']; if (!empty($datos['password'])) { $usuario->password = $datos['password']; } $usuario->update(); return redirect()->route('usuarios.index') ->with('mensaje-success', 'Usuario actualizado correctamente'); } public function destroy($id) { $usuario = User::findOrFail($id); if ($usuario->id == auth()->id()) { return redirect()->route('usuarios.index') ->with('mensaje-error', 'No puede eliminar su propio usuario'); } $usuario->delete(); return redirect()->route('usuarios.index') ->with('mensaje-success', 'Usuario eliminado correctamente'); } }