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

Open source

Teams for Laravel

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

Prehľ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 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.