availablePermissions = Permission::all(); } public function createRole() { $this->validate([ 'roleName' => 'required|unique:roles,name' ]); $role = Role::create(['name' => $this->roleName]); $this->reset(['roleName']); session()->flash('message', 'Rol creado con éxito.'); } public function selectRole($roleId) { $this->selectedRole = Role::find($roleId); $this->permissions = $this->selectedRole->permissions->pluck('id')->toArray(); } public function updateRolePermissions() { if ($this->selectedRole) { $this->selectedRole->syncPermissions($this->permissions); session()->flash('message', 'Permisos actualizados correctamente.'); } } public function deleteRole($roleId) { Role::find($roleId)->delete(); session()->flash('message', 'Rol eliminado.'); } public function render() { return view('livewire.roles', [ 'index' => Role::paginate(10) ]); } }