Oprávnenia
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 rolesgroup() 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 | GroupPrejavte 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 kryptomienOdoslaní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.