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

Pridajte balík. Service provider aj alias fasády Permissions sa načítajú automaticky — bez manuálnej registrácie:

composer require roundly-consulting/permissions-for-laravel

Ako prvú publikujte konfiguráciu. Typ kľúča držiteľov je súčasťou schémy, preto sa medzi kľúčmi bigint, UUID a ULID rozhodnite hneď (pozri Databázová schéma a typy kľúčov):

php artisan vendor:publish --tag="permissions-config"

Potom publikujte a spustite migrácie:

php artisan vendor:publish --tag="permissions-migrations"
php artisan migrate

Migrácie sa iba publikujú

Balík svoje migrácie nikdy nenačítava sám, takže php artisan migrate nevytvorí nič, kým ich nepublikujete do database/migrations vašej aplikácie. Osem migrácií dostane časovú pečiatku a správne poradie závislostí — permissions, roles, permission_role, model_roles, model_permissions a potom tri z verzie 2.1: add_owner_to_roles_table, create_role_assignments_table a create_permission_assignments_table. Opätovné publikovanie ich prepíše na mieste, nevznikne druhá kópia.

Balík poskytuje iba dva publish tagy: permissions-config a permissions-migrations.

Prechod z verzie 2.0

Kým funkciu nezapnete, nič sa nemení: pri vypnutom permissions.assignments.enabled posiela 2.1 presne tie isté dopyty ako 2.0 a nové tabuľky ani stĺpce nikdy nečíta, takže balík môžete aktualizovať ešte pred migráciou. Ak chcete priradenia v rozsahu a s časovým oknom alebo roly s vlastníkom:

  • Ak vaše modely rozsahov — projekty, tímy, tenanti — používajú iný typ kľúča ako držitelia, najprv nastavte permissions.assignments.scope_key_type.
  • Migrácie publikujte znova a spustite ich: tri nové súbory pribudnú, päť existujúcich sa prepíše na mieste. add_owner_to_roles_table po vytvorení nového indexu zruší index na názve roly podľa názvu, ktorý mu dal Laravel (<tabuľka rolí>_name_unique) — ak ste tento index ručne premenovali, publikovanú migráciu upravte.
  • Nastavte PERMISSIONS_ASSIGNMENTS=true. Žiadna migrácia dát nie je potrebná: priradenia z 2.0 fungujú ďalej ako trvalé priradenia bez rozsahu.
  • Voliteľne volajte Permissions::forgetScope() z hookov deleting vašich modelov rozsahov a naplánujte permissions:prune-expired — pozrite Priradenia v rozsahu a s časovým oknom.

Ďalšie kroky

  • Pridajte trait HasRoles do modelu používateľa.
  • Vytvorte roly a oprávnenia — ideálne v idempotentnom seederi.
  • Chráňte routy natívnym middlewarom can:.

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.