---
title: "Konfigurácia — Teams for Laravel | Roundly"
description: "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."
url: https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel/konfiguracia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Teams for Laravel](https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel.md)

# Konfigurácia

Keď sú migrácie publikované a spustené, balík funguje bez akejkoľvek konfigurácie — každý kľúč má predvolenú hodnotu, väčšina z env. config/teams.php publikujte, len ak chcete niečo zmeniť. Celý publikovaný súbor:

```php
use RoundlyConsulting\Teams\Models\Invite;
use RoundlyConsulting\Teams\Models\JoinRequest;
use RoundlyConsulting\Teams\Models\Member;
use RoundlyConsulting\Teams\Models\Team;
use RoundlyConsulting\Teams\Models\TeamRole;

return [

    'models' => [
        'team' => Team::class,
        'member' => Member::class,
        'invite' => Invite::class,
        'team_role' => TeamRole::class,
        'join_request' => JoinRequest::class,
    ],

    'key_type' => env('TEAMS_KEY_TYPE', 'bigint'),

    'roles' => [
        'provider' => env('TEAMS_ROLES_PROVIDER', 'array'),
        'owner' => 'owner',
        'admin' => 'admin',
        'default' => env('TEAMS_DEFAULT_ROLE', 'member'),
        'per_team' => env('TEAMS_PER_TEAM_ROLES', false),
        'cache' => [
            'enabled' => env('TEAMS_ROLES_CACHE', false),
            'store' => env('TEAMS_ROLES_CACHE_STORE'),
            'key' => env('TEAMS_ROLES_CACHE_KEY', 'teams.roles'),
            'ttl' => env('TEAMS_ROLES_CACHE_TTL', 3600),
        ],
    ],

    'invites' => [
        'expires_after' => env('TEAMS_INVITES_EXPIRES_AFTER', '7 days'),
        'code_length' => env('TEAMS_INVITES_CODE_LENGTH', 32),
    ],

    'members' => [
        'prune_after' => env('TEAMS_MEMBERS_PRUNE_AFTER', '30 days'),
        'expiring_within' => env('TEAMS_MEMBERS_EXPIRING_WITHIN', 7),
    ],

    'join_requests' => [
        'prune_after' => env('TEAMS_JOIN_REQUESTS_PRUNE_AFTER', '30 days'),
    ],

    'approvals' => [
        'enabled' => env('TEAMS_APPROVALS', false),
        'rule' => env('TEAMS_APPROVALS_RULE', 'unanimous'),
        'quorum' => env('TEAMS_APPROVALS_QUORUM'),
    ],

    'gate' => [
        'register' => env('TEAMS_REGISTER_GATE', true),
        'prefix' => env('TEAMS_GATE_PREFIX', 'teams'),
        'owner_ability' => env('TEAMS_GATE_OWNER_ABILITY', 'owner'),
    ],

    'notifications' => [
        'queue_connection' => env('TEAMS_NOTIFY_CONNECTION'),
    ],

];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `models.team` | Team::class | — | Model tímu. Musí rozširovať Team z balíka. |
| `models.member` | Member::class | — | Model členstva. |
| `models.invite` | Invite::class | — | Model pozvánky. |
| `models.team_role` | TeamRole::class | — | Model rolí upravených pre konkrétny tím. |
| `models.join_request` | JoinRequest::class | — | Model žiadosti o pripojenie. |
| `key_type` | bigint | `TEAMS_KEY_TYPE` | Typ kľúča polymorfných stĺpcov — bigint, uuid alebo ulid. Číta ho migrácia; iná hodnota vyhodí InvalidConfigurationException. |
| `roles.provider` | array | `TEAMS_ROLES_PROVIDER` | Úložisko rolí: array (v kóde) alebo database (tabuľka team\_roles); iná hodnota vyhodí výnimku. |
| `roles.owner` | owner | — | Rola, ktorú dostane zakladateľ tímu a nový vlastník. |
| `roles.admin` | admin | — | Rola, na ktorú sa pri prevode zníži pôvodný vlastník. |
| `roles.default` | member | `TEAMS_DEFAULT_ROLE` | Rola, ak žiadna nie je zadaná — napr. pri schválení žiadosti o pripojenie. |
| `roles.per_team` | false | `TEAMS_PER_TEAM_ROLES` | Zapne roly upravené pre konkrétny tím. Vypnuté = globálne roly, žiadne dopyty navyše. |
| `roles.cache.enabled` | false | `TEAMS_ROLES_CACHE` | Cache pre mapu rolí z databázy; vyprázdni sa pri každej zmene roly. |
| `roles.cache.store` | null | `TEAMS_ROLES_CACHE_STORE` | Cache úložisko; null = predvolené. Ak ho úložisko podporuje, použijú sa tagy. |
| `roles.cache.key` | teams.roles | `TEAMS_ROLES_CACHE_KEY` | Cache kľúč pre mapu rolí. |
| `roles.cache.ttl` | 3600 | `TEAMS_ROLES_CACHE_TTL` | Platnosť cache v sekundách, 1 – 31536000. |
| `invites.expires_after` | 7 days | `TEAMS_INVITES_EXPIRES_AFTER` | Predvolená platnosť pozvánky, ak nie je zadaná; použije sa aj pri opätovnom odoslaní — kladný interval ako 7 days alebo P7D. |
| `invites.code_length` | 32 | `TEAMS_INVITES_CODE_LENGTH` | Dĺžka náhodného kódu pozvánky, 8 – 128 (alfanumerické znaky bezpečné pre URL). |
| `members.prune_after` | 30 days | `TEAMS_MEMBERS_PRUNE_AFTER` | Nulový alebo kladný interval od expirácie členstva, po ktorom ho teams:members:prune alebo model:prune odstráni. |
| `members.expiring_within` | 7 | `TEAMS_MEMBERS_EXPIRING_WITHIN` | Predvolené okno v dňoch (1 – 3660) pre teams:members:expiring a MembershipExpiringSoon. |
| `join_requests.prune_after` | 30 days | `TEAMS_JOIN_REQUESTS_PRUNE_AFTER` | Nulový alebo kladný interval od poslednej zmeny vybavenej žiadosti, po ktorom ju model:prune odstráni. |
| `approvals.enabled` | false | `TEAMS_APPROVALS` | Žiadosti o pripojenie idú cez approvals-for-laravel na schválenie viacerými adminmi. |
| `approvals.rule` | unanimous | `TEAMS_APPROVALS_RULE` | Predvolené ApprovalRule, ak ho handle nenastaví: unanimous, quorum, any alebo weighted. Iná hodnota vyhodí InvalidConfigurationException. |
| `approvals.quorum` | null | `TEAMS_APPROVALS_QUORUM` | Predvolené kvórum (kladné celé číslo), ak ho handle žiadostí nenastaví. |
| `gate.register` | true | `TEAMS_REGISTER_GATE` | Zaregistruje Gate hook a Blade direktívy. |
| `gate.prefix` | teams | `TEAMS_GATE_PREFIX` | Prefix ability, napr. teams.manage-billing. |
| `gate.owner_ability` | owner | `TEAMS_GATE_OWNER_ABILITY` | Skrátená ability pre vlastníctvo: teams.owner. |
| `notifications.queue_connection` | null | `TEAMS_NOTIFY_CONNECTION` | Queue connection pre publikovateľný event subscriber. |

## Prostredie (env)

Bežné prepínače sa riadia cez env, takže publikovaný súbor zväčša vôbec nepotrebujete:

```bash
TEAMS_KEY_TYPE=uuid                  # set before you migrate
TEAMS_ROLES_PROVIDER=database
TEAMS_ROLES_CACHE=true
TEAMS_DEFAULT_ROLE=member
TEAMS_PER_TEAM_ROLES=true
TEAMS_INVITES_EXPIRES_AFTER="14 days"
TEAMS_MEMBERS_EXPIRING_WITHIN=14
TEAMS_APPROVALS=true
TEAMS_REGISTER_GATE=true
```

## Prísne hodnoty

Konfiguračný súbor odovzdáva hodnoty z env bez úprav a balík ich číta prísne. Kľúče typu bool prijmú reťazce z env tak, ako prídu: true/1/on/yes prepínač zapnú a false/0/off/no ho vypnú; kľúče typu int prijmú celočíselné reťazce ako „3600“. Nenastavený kľúč — chýbajúci, null alebo prázdny ('' či len medzery, ako pri samotnom riadku TEAMS\_APPROVALS=) — dostane predvolenú hodnotu. Čokoľvek iné vyhodí InvalidConfigurationException s názvom kľúča namiesto toho, aby sa potichu použila predvolená hodnota:

- preklep v prepínači (TEAMS\_APPROVALS=disabled), v drivere rolí (databse) alebo v pravidle schvaľovania;
- celé číslo, ktoré ním nie je (abc, 7.5), alebo je mimo rozsahu — napríklad kód pozvánky kratší ako 8 alebo dlhší ako 128 znakov;
- interval, ktorý Carbon nevie spracovať (seven days), alebo záporný interval — invites.expires\_after musí byť navyše väčší ako nula;
- nereťazcový kľúč roly, cache úložisko či kľúč, prefix Gate alebo owner ability.

php artisan about takú hodnotu zobrazí ako INVALID namiesto zlyhania.

Chybu intervalu balík formuluje v aktuálnom jazyku (teams::errors.invalid\_config\_value, angličtina a slovenčina). Chyby hodnôt typu bool, int, výberu a reťazca pochádzajú z Config readerov balíka package-toolkit a zostávajú v angličtine.

## Typ morph kľúča

key\_type číta migrácia, preto ho nastavte pred spustením migrácií. Určuje typ polymorfných stĺpcov owner, member, invited\_by, requester a responded\_by — ak modely za nimi používajú UUID alebo ULID primárne kľúče, zvoľte uuid alebo ulid. Všetky morph ciele musia zdieľať jeden typ kľúča; iná hodnota vyhodí pri spustení migrácií InvalidConfigurationException.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel.md)
