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

Každá zmena stavu spustí obyčajnú udalosť v RoundlyConsulting\Teams\Events, takže môžete posielať notifikácie, zapisovať audit či synchronizovať iné systémy bez zásahu do balíka:

UdalosťVlastnostiKedy
TeamMemberAdded$memberVznikne nové členstvo, alebo sa opätovným pridaním obnoví odobraté či vypršané ($member->wasRecentlyCreated ich rozlíši).
TeamMemberRoleChanged$member, $previousRoleZmení sa rola člena.
TeamMemberDeleted$memberČlenstvo sa odstráni (soft delete).
InviteCreated$inviteVytvorí sa pozvánka.
InviteAccepted$invite, $memberPozvánka je prijatá.
InviteResent$invitePozvánke sa vymení kód a predĺži platnosť.
InviteRevoked$invitePozvánka je zrušená.
TeamOwnershipTransferred$team, $previousOwner, $newOwnerVlastníctvo sa prevedie.
JoinRequestCreated$joinRequestPoužívateľ požiada o pripojenie.
JoinRequestApproved$joinRequestŽiadosť je schválená (aj automaticky).
JoinRequestDenied$joinRequestŽiadosť je zamietnutá.
JoinRequestExpired$requestČakajúca žiadosť sa po expirácii automaticky zamietne.
MembershipExpiringSoon$memberČlenstvo vyprší v rámci okna reportu (--notify).
MembershipExpired$memberExpirované členstvo sa odstráni — cez teams:members:prune, Teams::members()->prune() alebo model:prune.
TeamContextSet$teams, $multiple, $restored; team()Zmenil sa kontext aktuálneho tímu — setCurrent() ($teams prázdne pri zrušení), switchTo(), setCurrentMany(), middleware teams.context, vstup do runAs() a obnova po ňom, alebo job vo fronte, ktorý obnovil kontext odosielateľa ($restored = true; nie, ak opätovné overenie členstva zlyhá).
TeamMoved$team, $parent, $previousParentKeyTím sa presunul pod rodiča alebo sa odpojil ako koreň.

Pozor na názov vlastnosti: JoinRequestExpired nesie $request, ostatné udalosti žiadostí $joinRequest. Pri zapnutom moste k permissions balík sám počúva TeamMemberDeleted, MembershipExpired a TeamMemberAdded (len pri obnovených riadkoch), aby zabudol priradenia člena v danom tíme.

use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Teams\Events\InviteAccepted;
use RoundlyConsulting\Teams\Events\TeamMemberRoleChanged;

Event::listen(function (InviteAccepted $event): void {
    logger()->info('Invite accepted', [
        'invite' => $event->invite->id,
        'member' => $event->member->id,
    ]);
});

Event::listen(function (TeamMemberRoleChanged $event): void {
    // $event->member->role is the new role; $event->previousRole the old one
});

Most k notifikáciám

Publikovaním teams-stubs získate App\Listeners\TeamEventSubscriber — subscriber bežiaci cez frontu s handlermi pre TeamMemberAdded, TeamMemberRoleChanged a InviteCreated. Do handlerov doplňte vlastné triedy Notification; beží na notifications.queue_connection, inak na queue.default. Zaregistrujte ho:

// app/Providers/AppServiceProvider.php → boot()
use App\Listeners\TeamEventSubscriber;
use Illuminate\Support\Facades\Event;

Event::subscribe(TeamEventSubscriber::class);

Ak chcete reagovať na ďalšie udalosti, rozšírte jeho mapu subscribe(). Balík dodáva prepojenie, obsah notifikácií je na vašej aplikácii.

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.