93 lines
2.1 KiB
PHP
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');
|
|
}
|
|
}
|