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. Po zapnutí zostanú riadky každého zákazníka v jeho tíme — v requestoch aj v joboch vo fronte —, tímy sa dajú vnárať, členstvo môže začať neskôr a permissions-for-laravel pridá priradenia v rámci tímu s časovým obmedzením pre jednotlivých členov. 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.
Naplánované a časovo obmedzené členstvo
Členstvo naplánujte s neskorším začiatkom, nastavte mu dátum konca, zistite, komu čoskoro vyprší, a expirované členstvá plánovane odstráňte.
Oddelenie dát jednotlivých tímov
Voliteľne aktuálny tím, ktorý request prenesie aj do jobov vo fronte, modely viazané na tím, ktoré bez kontextu nevrátia nič, overené prepnutie tímu a kontrola každej tabuľky viazanej na tím.
Vnorené tímy a priradenia v tíme
Voliteľné hierarchie firma → oddelenie → tím s dedením rolí a časovo obmedzené priradenia pre jednotlivých členov cez permissions-for-laravel.
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 — typy kľúčov, roly a cache, pozvánky a členstvá, schvaľovanie, Gate, kontext tímu, vnáranie a most.
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 aktuálny tím, globálne roly, oprávnenia a upratovanie.
DI, akcie a DTO
Namiesto fasády si injektujte TeamsManager, alebo volajte 26 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
Naplánujte členstvo s neskorším začiatkom, nastavte dátum konca, predlžujte, zistite, komu čoskoro vyprší, 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.
Most k permissions
Voliteľný most k permissions-for-laravel: viac rolí na člena, priradenia v tíme s časovým obmedzením aj priame, roly definované tímom a upratovanie.
Oddelenie dát tímov
Voliteľný multi-tenancy: aktuálny tím, ktorý prejde aj do jobov vo fronte, modely viazané na tím bez úniku dát, overené prepnutie tímu a kontrola.
Vnorené tímy
Voliteľné hierarchie firma → oddelenie → tím: presúvajte tímy, prechádzajte strom, obmedzte hĺbku a nechajte roly z vyšších tímov platiť nižšie.
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
Šestnásť udalostí pokrýva členov, pozvánky, vlastníctvo, žiadosti, expiráciu, kontext tímu a presuny — plus stub subscribera cez frontu.
Artisan príkazy
Deväť príkazov vypíše roly a oprávnenia, spravuje pozvánky, reportuje a čistí členstvá, zamieta žiadosti, generuje policies a kontroluje tabuľky.
Výnimky
Typované výnimky pre pozvánky, žiadosti, členov, kontext tímu a vnáranie — vypršané, vyčerpané, zrušené, odmietnuté — všetky od TeamsException.
Modely a schéma
Šesť tabuliek a modelov, ich typy kľúčov, 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; pomôžu Pest matchery, factories aj actingInTeam().
Požiadavky
PHP 8.4+, Laravel 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.