taller/app/Http/Controllers/PermisoController.php
2026-10-15 08:51:58 -03:00

93 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use Spatie\Permission\Models\Permission;
class PermisoController extends Controller
{
public function index()
{
$permisos = Permission::all();
return view('permisos.index', compact('permisos'));
}
public function create()
{
return view('permisos.create');
}
public function store(Request $request)
{
$datos = $request->validate([
'name' => [
'required',
'string',
'max:100',
Rule::unique('permissions', 'name')
->where('guard_name', 'web'),
],
]);
$permiso = new Permission();
$permiso->name = $datos['name'];
$permiso->guard_name = 'web';
$permiso->save();
return redirect()->route('permisos.index')
->with('mensaje-success', 'Permiso creado correctamente');
}
public function show($id)
{
$permiso = Permission::findOrFail($id);
return view('permisos.show', compact('permiso'));
}
public function edit($id)
{
$permiso = Permission::findOrFail($id);
return view('permisos.edit', compact('permiso'));
}
public function update(Request $request, $id)
{
$permiso = Permission::findOrFail($id);
$datos = $request->validate([
'name' => [
'required',
'string',
'max:100',
Rule::unique('permissions', 'name')
->where('guard_name', $permiso->guard_name)
->ignore($permiso->id),
],
]);
$permiso->name = $datos['name'];
$permiso->save();
return redirect()->route('permisos.index')
->with('mensaje-success', 'Permiso actualizado correctamente');
}
public function destroy($id)
{
$permiso = Permission::findOrFail($id);
$permiso->delete();
return redirect()->route('permisos.index')
->with('mensaje-success', 'Permiso eliminado correctamente');
}
}