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