Creación de permisos
El permiso otorga una capacidad especial al rol al que está asociado. Luego, el permiso puede asociarse a muchos roles al mismo tiempo. En concreto, el permiso debe usarse para permitir o denegar el acceso a una funcionalidad. Puede utilizarse para restringir a los usuarios la eliminación de un pedido o el acceso a información sensible. A diferencia de los Roles, los permisos no se crean desde el panel de NexoPOS, sino de forma programática.
<?php
use App\Models\Permission;
$permission = new Permission;
$permission->name = __( 'Walk on Walls' );
$permission->namespace = 'walks-on-walls';
$permission->description = __( 'Allow a user to walk on walls.' );
$permission->save();
Al igual que con cualquier modelo de Laravel, se puede eliminar usando el método «delete» (una vez recuperado).
Dar/Eliminar Permiso a un Rol
Una función sin permisos no puede hacer nada. Por lo tanto, necesitamos otorgar permisos a una función para que pueda realizar la acción específica que hemos concedido explícitamente. También es posible permitir una función desde el panel de NexoPOS.
De manera programática, procederás así:
<?php
use App\Models\Permission;
use App\Models\Role;
$role = Role::namespace( 'super-agent' );
$permission = Permission::namespace( 'walk-on-walls' );
$role->addPermissions( $permission );
El método «addPermissions» acepta un String (espacio de nombres de permisos), un Array y una Collection de instancias de «Permission». Para eliminar permisos, usarás el método «removePermissions», que acepta los mismos parámetros.
<?php
use App\Models\Permission;
use App\Models\Role;
$role = Role::namespace( 'super-agent' );
$permission = Permission::namespace( 'walk-on-walls' );
$role->removePermissions( $permission );
// or
Role::namespace( 'super-agent' )
->removePermissions( 'walk-on-walls' );