Open source
Teams for Laravel
composer require roundly-consulting/teams-for-laravelPrehľad
Tímy, roly, oprávnenia a pozvánky pre Laravel. Akýkoľvek Eloquent model môže tímy vlastniť aj byť ich členom; členovia majú rolu, roly majú oprávnenia a tímy vydávajú pozvánky s expiráciou na konkrétny e-mail alebo prijímajú žiadosti o pripojenie. Prehľadná fasáda Teams s handlami pre jednotlivé tímy zvládne bežné operácie na jednom riadku, každá operácia je testovateľná akčná trieda a autorizácia beží cez Gate a Blade priamo v Laraveli. Licencia MIT a minimum závislostí — Laravel a niekoľko malých sesterských balíkov Roundly, ktoré Composer nainštaluje za vás.
Čo získate
Tímy, členovia a vlastníctvo
Akýkoľvek Eloquent model môže vlastniť viacero tímov a byť ich členom. Pri prevode vlastníctva zostáva pôvodný vlastník v tíme ako admin.
Roly, aj pre konkrétny tím
Roly registrujte v kóde alebo v databáze s voliteľnou cache — a Editor v jednom tíme môže mať viac práv ako v inom.
Fasáda, DI alebo akcie
Handle Teams::for($team) pokryje každú operáciu — alebo si injektujte TeamsManager či volajte akcie. Teams::fake() všetko zaznamená.
Natívny Gate a Blade
$user->can('teams.<oprávnenie>', $team), vstavaná ability pre vlastníka a direktívy @teamPermission, @teamRole a @teamOwner.
Pozvánky pre viacerých
Pozvánky s expiráciou, na konkrétny e-mail, jednorazové aj viacnásobné — s evidenciou miest, opätovným odoslaním, zrušením a prijatím cez kód.
Žiadosti o pripojenie a nastavenia
Používatelia žiadajú o vstup, admini rozhodujú. Pravidlá vstupu, limit miest a voliteľné schvaľovanie viacerými adminmi pre každý tím.
Časovo obmedzené členstvo
Nastavte členstvu dátum konca, zistite, komu čoskoro vyprší, a expirované členstvá plánovane odstráňte.
Dokumentácia
Inštalácia
Inštalácia cez Composer, publikovanie a spustenie migrácií teams aj piatich sesterských balíkov, voliteľne konfigurácia a stuby.
Konfigurácia
Každý konfiguračný kľúč a jeho predvolená hodnota — modely, typ morph kľúča, driver a cache rolí, životný cyklus pozvánok a členstiev, Gate.
Traity modelov
HasTeams dá ľubovoľnému modelu členstvá, vlastníctvo, roly a oprávnenia; BelongsToTeam pridá prepínateľný aktuálny tím.
Fasáda Teams
Jeden vstupný bod: handle Teams::for($team) pre členov, pozvánky, žiadosti a roly, plus globálne roly, oprávnenia a upratovanie.
DI, akcie a DTO
Namiesto fasády si injektujte TeamsManager, alebo volajte 17 samostatných akcií s typovanými DTO z vlastných jobov a príkazov.
Vytváranie tímov
Vytvorte tím a jeho vlastníka cez Teams::create(), v prípade potreby vytvárajte riadky priamo a filtrujte tímy cez scopes a relácie.
Vlastníctvo
Overujte a prevádzajte vlastníctvo tímu; pôvodný vlastník zostáva ako admin a vstavaná ability nahrádza oprávnenia len pre vlastníka.
Členovia
Pridávajte, odoberajte a overujte členov; jeden riadok na člena, idempotentné pridanie s obnovou odobratých, udalosti pri zmene roly a soft delete.
Časovo obmedzené členstvo
Nastavte členom dátum konca, predlžujte na mieste, zistite, komu čoskoro vyprší, s voliteľnými pripomienkami a expirované riadky odstráňte.
Roly
Registrujte roly s oprávneniami v kóde alebo v databáze, používajte zástupný znak * a zapnite cache pre databázový driver.
Roly pre konkrétny tím
Každý tím si môže upraviť oprávnenia roly nad globálnymi rolami — pre každého tenanta zvlášť, predvolene vypnuté, bez dopytov navyše.
Oprávnenia
Register oprávnení pre výberové UI so skupinami a zberom z rolí, plus programové overovanie oprávnení a rolí.
Gate, Blade a policies
Autorizujte cez $user->can('teams.<oprávnenie>', $team), @teamPermission / @teamRole / @teamOwner a vygenerované tímové policies.
Pozvánky
Vydávajte pozvánky s expiráciou aj na konkrétny e-mail, prijímajte ich cez kód, posielajte znova či rušte a napojte hotovú routu.
Pozvánky pre viacerých
Vydávajte odkazy použiteľné N-krát alebo bez limitu, sledujte obsadené a voľné miesta a presne auditujte, kto sa cez odkaz pridal.
Žiadosti o pripojenie
Používatelia žiadajú o vstup do tímu, admini schvaľujú alebo zamietajú s náhradnou rolou; voliteľné termíny a automatické zamietnutie.
Nastavenia tímu
Typované pravidlá pre každý tím: pravidlo vstupu, limit miest, predvolená rola a povinné schválenie, uložené cez options-for-laravel.
Integrácie
Schvaľovanie žiadostí viacerými adminmi cez approvals, plus kontakty, adresy a prepojenia tímov zo sesterských balíkov Roundly.
Udalosti
Štrnásť udalostí pokrýva členov, pozvánky, vlastníctvo, žiadosti a expiráciu — plus stub subscribera na notifikácie cez frontu.
Artisan príkazy
Osem príkazov vypíše roly a oprávnenia, pošle znova a vyčistí pozvánky, reportuje a čistí členstvá, zamieta žiadosti a generuje policies.
Výnimky
Typované výnimky pre pozvánky, žiadosti a členov — vypršané, vyčerpané, zrušené, už vybavené — všetky odvodené od TeamsException.
Modely a schéma
Šesť tabuliek a modelov, nahradenie modelov vlastnými podtriedami a výmena role providera.
Testovanie
Teams::fake() zaznamená každú operáciu a pritom ju vykoná, s aserciou pre každú operáciu; Pest matchery a factories skracujú testy.
Požiadavky
PHP 8.4+, Laravel 12 alebo 13 a sedem malých sesterských balíkov 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 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.