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

Open source

Permissions for Laravel

Inštalácia
composer require roundly-consulting/permissions-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Natívne roly a oprávnenia pre Laravel. Priraďte akémukoľvek Eloquent modelu roly aj priame oprávnenia, vypočítajte efektívne oprávnenia (priame ∪ z rolí) a nechajte Gate, middleware can: a $user->can() v Laraveli autorizovať priamo podľa nich — bez toho, aby kedykoľvek prebili policies vašich modelov. Jeden guard, cache s automatickou invalidáciou a predvolene aditívne udeľovanie, takže nezávislé moduly si môžu bezpečne registrovať vlastné oprávnenia. Katalóg aj všetky priradenia obslúži jedna fasáda Permissions a Permissions::fake() vo vašich testoch zaznamená každý zápis. Licencia MIT, bez akýchkoľvek runtime závislostí tretích strán.

Čo získate

Roly a priame oprávnenia

Priraďte akémukoľvek Eloquent modelu roly aj priame oprávnenia. Efektívne oprávnenia sú priame ∪ z rolí, bez duplicít.

Natívne napojenie na Gate

Middleware can:, $user->can() aj Gate vyhodnocujú oprávnenia hneď po inštalácii — posledné slovo majú vaše policies.

Predvolene aditívne

givePermissionTo() nikdy neodoberie oprávnenia udelené inou časťou aplikácie; presnú množinu nastavíte cez syncPermissions().

Cache, ktorá sa sama invaliduje

Katalóg oprávnení je v cache a vyprázdni sa po potvrdení každej zmeny oprávnení, rolí či priradení — bezpečne aj pre Octane a fronty.

Enumy a ľubovoľný typ kľúča

Všade odovzdávajte reťazce alebo backed enumy a katalóg naplňte cez syncFrom(); držitelia môžu mať kľúče bigint, UUID alebo ULID.

Fasáda, DI alebo akcie

Použite fasádu Permissions, injektujte PermissionsManager alebo zavolajte akciu; Permissions::fake() v testoch zaznamená každý zápis.

Preložiteľné popisy

Popisy rolí a oprávnení v jednotlivých jazykoch s premysleným fallbackom, ktorý neprezrádza obsah iných jazykov.

Bezpečné upratovanie

forgetAllAuthorization() a pruneOrphans() zabránia, aby nový záznam zdedil oprávnenia zmazaného držiteľa.

Dokumentácia

Inštalácia

Inštalácia cez Composer, najprv publikovanie konfigurácie, potom publikovanie a spustenie migrácií.

Konfigurácia

Každý konfiguračný kľúč a jeho predvolená hodnota — modely, tabuľky, typ kľúča držiteľov, Gate hook, fallback popisov a cache.

Databázová schéma a typy kľúčov

Päť tabuliek, ich pevné stĺpce a ako key_type určuje typ model_id pre držiteľov s kľúčmi bigint, UUID alebo ULID.

Trait HasRoles

Pridajte HasRoles do ľubovoľného autentifikovateľného modelu a získa roly, priame oprávnenia a výpočet efektívnych oprávnení.

Fasáda Permissions

Všetky vstupné body na jednej fasáde: katalóg rolí a oprávnení, synchronizácia z enumov, priradenia držiteľov, cache, prečistenie a fake.

DI a akcie

Namiesto fasády injektujte PermissionsManager alebo volajte jednoúčelové akcie priamo — s mapou metód fasády na akcie.

Roly a oprávnenia

Vytvárajte roly a oprávnenia idempotentne cez fasádu, vyhľadávajte ich, bezpečne ich seedujte pri každom nasadení a čítajte ich relácie.

Udeľovanie oprávnení

Udeľujte, odoberajte a synchronizujte oprávnenia na rolách aj priamo na modeli — predvolene aditívne, na požiadanie autoritatívne.

Priraďovanie rolí

Priraďujte, odoberajte a synchronizujte roly na ľubovoľnom držiteľovi; oprávnenia roly prejdú na každý model, ktorý ju drží.

Overovanie prístupu

Overujte roly a efektívne oprávnenia, vypisujte názvy a priradenia, načítajte ich hromadne a filtrujte držiteľov podľa roly.

Backed enumy

Odovzdávajte vlastné backed enumy všade, kde sa očakáva názov roly či oprávnenia — uloží sa hodnota enumu.

Gate a middleware

Autorizujte cez middleware can:, $user->can() a Gate — bez toho, aby oprávnenia kedykoľvek prebili vaše policies.

Preložiteľné popisy

Popisy rolí a oprávnení v jednotlivých jazykoch cez translatable-for-laravel, s premysleným a konfigurovateľným fallbackom.

Kešovanie

Katalóg oprávnení v cache, jeho invalidácia po potvrdení transakcie, úskalia hromadných zápisov a správanie v Octane a queue workeroch.

Mazanie držiteľov

Zabráňte, aby nový záznam zdedil oprávnenia zmazaného držiteľa — odpojte ich pri mazaní alebo prečistite osirotené riadky.

Vlastné modely a tabuľky

Nahraďte modely Role a Permission vlastnými podtriedami, premenujte tabuľky a zistite nastavenie priamo v kóde.

Artisan príkazy

Vyprázdnite cache oprávnení, prečistite osirotené priradenia a skontrolujte nastavenie balíka cez php artisan about.

Výnimky

Jedna rodina výnimiek — PermissionException, RoleDoesNotExist a PermissionDoesNotExist — s preložiteľnými správami.

Testovanie

Zaznamenajte každý zápis rolí a oprávnení cez Permissions::fake() a 26 asercií, potom testujte celý tok s factories a HTTP.

Požiadavky

PHP 8.4+, Laravel 12 alebo 13 a tri balíky Roundly, ktoré Composer nainštaluje za vás.

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.