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

Roly pre konkrétny tím

Zapnite roles.per_team a každý tím sa môže odchýliť od globálnych rolí — Editor jedného tenanta tak môže mať viac práv ako u iného. Úprava pre dvojicu (tím, kľúč) má prednosť pred globálnou definíciou; ostatné kľúče sa načítajú z globálnych rolí. Keď je prepínač vypnutý, rola sa načíta priamo z globálneho providera bez dopytov navyše:

// .env → TEAMS_PER_TEAM_ROLES=true
Teams::roles()->register('editor', 'Editor', ['posts.edit']);   // global baseline

Teams::for($team)->roles()->define(
    'editor',
    'Senior Editor',
    ['posts.edit', 'posts.publish'],
    'Editor with publishing rights for this workspace',
);
// or: $team->defineRole('editor', 'Senior Editor', ['posts.edit', 'posts.publish']);

$user->can('teams.posts.publish', $team);     // true for THIS team only
Teams::for($team)->roles()->all();            // effective map — global roles merged with overrides
Teams::for($team)->roles()->find('editor');   // ?Role — the override when one exists

roles()->define() vytvorí alebo aktualizuje riadok team_role_overrides podľa (team_id, key) — opätovným volaním úpravu zmeníte; mäkko zmazaná úprava sa obnoví a nanovo definuje. Oprávnenia môžu byť reťazce aj objekty Permission; ukladajú sa len ich kľúče.

Načítanie rolí pre tím

use RoundlyConsulting\Teams\Roles\TeamRoleResolver;

$resolver = app(TeamRoleResolver::class);

$resolver->resolve($team, 'editor');   // ?Role — the team's override if any, else the global role
$resolver->all($team);                 // array<string, Role>

$team->teamRoles()->where('key', 'editor')->first()?->toRole();   // one override as a Role

Member::role() ide cez resolver, len kým je per_team zapnuté — pri vypnutom sa úpravy ignorujú, aj keď riadky existujú. TeamRoleResolver je singleton v kontajneri, ktorý môžete nahradiť.

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.