106 lines
2.6 KiB
PHP
106 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class UsuarioController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->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');
|
|
}
|
|
} |