Creazione delle autorizzazioni
La permission offre une capacité spéciale 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();
Come con qualsiasi modello Laravel, può essere eliminato utilizzando il metodo "delete" (una volta recuperato).
Concedi/Rimuovi autorizzazioni a un ruolo
Un ruolo senza autorizzazioni non può fare nulla. Pertanto, dobbiamo concedere le autorizzazioni a un ruolo affinché io possa eseguire l’azione specifica che abbiamo esplicitamente autorizzato. È anche possibile consentire a un ruolo di farlo dalla dashboard di NexoPOS.
In modo programmatico, procederai così:
<?php
use App\Models\Permission;
use App\Models\Role;
$role = Role::namespace( 'super-agent' );
$permission = Permission::namespace( 'walk-on-walls' );
$role->addPermissions( $permission );
Le 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' );