Home
NexoPOS

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.

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