Startseite
NexoPOS

Berechtigungen erstellen

Berechtigungen verleihen der Rolle, an die sie angehängt sind, eine besondere Fähigkeit. Berechtigungen können dann gleichzeitig an viele Rollen angehängt werden. Konkret sollte eine Berechtigung verwendet werden, um den Zugriff auf eine Funktion zu erlauben oder zu verweigern. Sie kann dazu genutzt werden, Benutzer daran zu hindern, eine Bestellung zu löschen oder auf vertrauliche Informationen zuzugreifen. Im Gegensatz zu Rollen werden Berechtigungen nicht aus dem NexoPOS-Dashboard erstellt, sondern stattdessen programmgesteuert.

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

Wie bei jedem Laravel-Modell kann es mit der „delete“-Methode gelöscht werden (sobald es abgerufen wurde).

Berechtigung für eine Rolle erteilen/entfernen

Eine Rolle ohne Berechtigung kann nichts tun. Daher müssen wir einer Rolle Berechtigungen erteilen, damit ich die spezifische Aktion ausführen kann, die wir ausdrücklich freigegeben haben. Es ist außerdem möglich, einer Rolle über das NexoPOS-Dashboard Berechtigungen zu erteilen.

permission-management-nexopos

Programmgesteuert gehst du wie folgt vor:

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

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

$role->addPermissions( $permission );

Die Methode „addPermissions“ akzeptiert einen String (Berechtigungsnamespace), ein Array und eine Collection von „Permission“-Instanzen. Zum Entfernen von Berechtigungen verwenden Sie die Methode „removePermissions“, die dieselben Parameter akzeptiert.

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