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

Oprávnenia sú obyčajné reťazcové kľúče na rolách. Register oprávnení, Teams::permissions(), vypíše všetky známe oprávnenia — pre editor rolí či výber oprávnení — bez ohľadu na to, ktoré roly ich používajú. Oprávnenia sú konštanty v kóde, preto register žije v pamäti (databázový driver neexistuje):

use RoundlyConsulting\Teams\Facades\Teams;

Teams::permissions()->register('posts.publish', 'Publish posts', group: 'Content');
Teams::permissions()->register('billing.manage', 'Manage billing', group: 'Billing');
Teams::permissions()->group('Content', ['posts.edit', 'posts.delete']);

Teams::permissions()->all();                   // array<string, Permission> — registered only
Teams::permissions()->find('posts.publish');   // ?Permission
Teams::permissions()->fromRoles();             // registered + every distinct permission declared on roles

group() označí oprávnenia skupinou pre UI a zachová názvy už zaregistrovaných. fromRoles() pridá každé jedinečné oprávnenie deklarované na zaregistrovaných rolách, takže aj aplikácia, ktorá oprávnenia deklarovala len na rolách, dostane úplný katalóg:

// Section a permission picker by group:
$grouped = collect(Teams::permissions()->fromRoles())->groupBy('group');

$permission = Teams::permissions()->find('posts.publish');
$permission->key;     // 'posts.publish'
$permission->name;    // 'Publish posts'
$permission->group;   // 'Content'

Overovanie oprávnení

$team->memberHasPermission($user, 'posts.publish');   // bool
$user->hasTeamPermission($team, 'posts.publish');     // bool — HasTeams
$team->memberHasRole($user, 'admin');                 // bool

$role = $team->findMember($user)?->role();
$role?->hasAnyPermission(['posts.edit', 'posts.publish']);

memberHasPermission() načíta rolu člena (s ohľadom na úpravy pre tím) a pre nečlenov, expirované členstvá a nezaregistrované roly vráti false. V controlleroch a šablónach radšej použite Gate — pozrite Gate, Blade a policies.

Výpis oprávnení

php artisan teams:permissions   # Key | Name | Group

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.