Accueil
NexoPOS

Création des autorisations

La permission confère une capacité particulière au rôle auquel elle est associée. Une permission peut ensuite être associée à de nombreux rôles en même temps. Concrètement, la permission doit être utilisée pour autoriser ou refuser l’accès à une fonctionnalité. Elle peut servir à empêcher les utilisateurs de supprimer une commande ou d’accéder à des informations sensibles. Contrairement aux rôles, les permissions ne sont pas créées depuis le tableau de bord NexoPOS, mais plutôt par programmation.

<?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();

Comme tout modèle Laravel, il peut être supprimé à l’aide de la méthode « delete » (une fois récupéré).

Accorder/Retirer des autorisations à un rôle

Un rôle sans autorisation ne peut rien faire. Nous devons donc accorder des autorisations à un rôle afin que je puisse effectuer l’action spécifique que nous lui avons explicitement accordée. Il est également possible d’autoriser un rôle depuis le tableau de bord NexoPOS.

permission-management-nexopos

De manière programmatique, vous procéderez comme suit :

<?php
use App\Models\Permission;
use App\Models\Role;

$role         = Role::namespace( 'super-agent' );
$permission   = Permission::namespace( 'walk-on-walls' );

$role->addPermissions( $permission );

La méthode « addPermissions » accepte une chaîne (espace de noms des autorisations), un tableau et une collection d’instances de « Permission ». Pour supprimer une autorisation, vous utiliserez la méthode « removePermissions », qui accepte les mêmes paramètres.

<?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' );