NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Permissions for Laravel

Priraďovanie rolí

Roly priraďujte cez Permissions::for($holder). assignRole je aditívne a variadické, removeRole rolu odpojí a syncRoles z danej množiny spraví presnú množinu rolí:

use RoundlyConsulting\Permissions\Facades\Permissions;

Permissions::for($user)->assignRole('administrator');
Permissions::for($user)->assignRole('editor', 'reviewer');   // variadic, additive
Permissions::for($user)->assignRole(['editor', $role]);      // arrays, Role models, backed enums

Permissions::for($user)->removeRole('administrator');
Permissions::for($user)->syncRoles(['editor']);              // exact role set
Permissions::for($user)->forgetAllAuthorization();           // every role and direct grant

Prijíma názvy, backed enumy, modely Role, polia aj vnorené iterovateľné štruktúry. Neznámy názov roly vyhodí RoleDoesNotExist; neuložený model Role vyhodí PermissionException. syncRoles beží v transakcii, takže súbežná kontrola nikdy neuvidí prázdnu množinu rolí uprostred synchronizácie.

Zápis rolí vyžaduje držiteľa s HasRoles — Permissions::for($role)->assignRole() vyhodí PermissionException, pretože Role drží oprávnenia, nikdy nie roly. Na modeli sú metódy z HasRoles len skratkou pre tie isté volania:

$user->assignRole('administrator');
$user->removeRole('administrator');
$user->syncRoles(['editor']);
$user->forgetAllAuthorization();

Dedenie oprávnení cez roly

Oprávnenia udeľte role raz a zdedí ich každý držiteľ. Zmeníte rolu a zmena sa prejaví u všetkých držiteľov — bez zápisu pre každého používateľa:

use RoundlyConsulting\Permissions\Facades\Permissions;

Permissions::permission('articles.publish');
Permissions::for(Permissions::role('editor'))->givePermissionTo('articles.publish');

Permissions::for($user)->assignRole('editor');
$user->hasPermissionTo('articles.publish'); // true — inherited via the role

Odobratie všetkého

Permissions::for($holder)->forgetAllAuthorization() odpojí všetky roly aj všetky priame oprávnenia v jednej transakcii. Použite ho pri mazaní držiteľa — pozri Mazanie držiteľov.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.