validate([ 'name' => 'required|string|unique:roles,name' ]); Role::create(['name' => $request->name]); return redirect()->route('roles.index') ->with('success', 'Rol creado correctamente.'); } public function edit(Role $role) { return view('roles.edit', compact('role')); } public function update(Request $request, Role $role) { $request->validate([ 'name' => 'required|string|unique:roles,name,' . $role->id ]); $role->update(['name' => $request->name]); return redirect()->route('roles.index') ->with('success', 'Rol actualizado.'); } public function destroy(Role $role) { $role->delete(); return redirect()->route('roles.index') ->with('success', 'Rol eliminado.'); } public function permissions(Role $role) { $permissions = Permission::all(); $rolePermissions = $role->permissions->pluck('id')->toArray(); return view('roles.permissions', compact('role', 'permissions', 'rolePermissions')); } public function syncPermissions(Request $request, Role $role) { $request->validate([ 'permissions' => 'array' ]); $role->syncPermissions($request->permissions ?? []); return redirect()->route('roles.index') ->with('success', 'Permisos actualizados correctamente.'); } }