Inicio
NexoPOS

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.

permission-management-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' );