---
title: "Fasáda Permissions — Permissions for Laravel | Roundly"
description: "Všetky vstupné body na jednej fasáde: katalóg rolí a oprávnení, synchronizácia z enumov, priradenia držiteľov, cache, prečistenie a fake."
url: https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel/fasada
language: sk
---

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

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

# Fasáda Permissions

Všetko ide cez fasádu Permissions (alias Permissions sa zaregistruje automaticky). Jej koreňom je RoundlyConsulting\\Permissions\\PermissionsManager — singleton, ktorý môžete aj injektovať. Každá metóda, ktorá prijíma názov, akceptuje reťazec alebo BackedEnum:

```php
use RoundlyConsulting\Permissions\Facades\Permissions;

// Catalog
Permissions::role('editor');                       // find or create — Role
Permissions::permission('posts.edit');             // find or create — Permission
Permissions::findRole('editor');                   // ?Role
Permissions::findPermission('posts.edit');         // ?Permission — the full row
Permissions::roles();                              // Collection<Role>, ordered by name
Permissions::permissions();                        // the cached catalog: id + name
Permissions::exists('posts.edit');                 // bool, from the cache
Permissions::syncFrom(PostPermission::class);      // SyncResult
Permissions::syncRolesFrom(RoleName::class);       // SyncResult

// Grants for one holder — every verb returns the holder
Permissions::for($user)->assignRole('editor');
Permissions::for($user)->removeRole('editor');
Permissions::for($user)->syncRoles(['editor']);
Permissions::for($user)->givePermissionTo('posts.edit');
Permissions::for($user)->revokePermissionTo('posts.edit');
Permissions::for($user)->syncPermissions([PostPermission::Edit]);
Permissions::for($user)->forgetAllAuthorization();

// Housekeeping and configuration
Permissions::cache()->forget();
Permissions::cache()->flushMemo();
Permissions::pruneOrphans();                       // int — rows deleted
Permissions::roleModel();                          // class-string<Role>
Permissions::permissionModel();                    // class-string<Permission>

// Tests
$fake = Permissions::fake();                       // PermissionsFake
```

## Metódy

| Metóda | Vracia | Účel |
| --- | --- | --- |
| `role($name)` | `Role` | Nájde alebo vytvorí rolu ako váš nastavený model. |
| `permission($name)` | `Permission` | Nájde alebo vytvorí oprávnenie ako váš nastavený model. |
| `findRole($name)` | `?Role` | Vyhľadá rolu podľa názvu; ak neexistuje, vráti null. Živý dopyt. |
| `findPermission($name)` | `?Permission` | Vyhľadá oprávnenie podľa názvu — celý riadok vrátane popisu. |
| `roles()` | `Collection<Role>` | Všetky roly zoradené podľa názvu. Živý dopyt. |
| `permissions()` | `Collection<Permission>` | Katalóg oprávnení z cache — iba id a name. |
| `exists($name)` | `bool` | Či je oprávnenie zaregistrované; odpoveď ide z cache. |
| `syncFrom(Enum::class)` | `SyncResult` | Zaregistruje jedno oprávnenie za každý prípad backed enumu. Aditívne. |
| `syncRolesFrom(Enum::class)` | `SyncResult` | Zaregistruje jednu rolu za každý prípad backed enumu. Aditívne. |
| `for($holder)` | `HolderGrants` | Zápisy rolí a oprávnení pre jedného držiteľa. |
| `cache()` | `PermissionCache` | forget() zahodí katalóg v cache; flushMemo() iba memo aktuálneho procesu. |
| `pruneOrphans()` | `int` | Zmaže priradenia, ktorých držiteľ už neexistuje; vráti ich počet. |
| `roleModel() / permissionModel()` | `class-string` | Vaše nastavené triedy modelov. |
| `fake()` | `PermissionsFake` | Nahradí manažér zaznamenávajúcim fake — iba na fasáde. |

## Zápisy pre jedného držiteľa: for()

Permissions::for($holder) vráti handle HolderGrants s rovnakými zapisujúcimi metódami, aké majú traity. Každá metóda vráti držiteľa:

```php
use RoundlyConsulting\Permissions\Facades\Permissions;

Permissions::for($user)->assignRole('editor');
Permissions::for($user)->syncPermissions([PostPermission::Edit]);

$role = Permissions::role('editor');
Permissions::for($role)->givePermissionTo('posts.edit'); // a Role holds permissions

// The trait methods are sugar over the same handle:
$user->assignRole('editor'); // === Permissions::for($user)->assignRole('editor')
```

| Permissions::for($holder)->… | Čo robí | Držiteľ musí |
| --- | --- | --- |
| `assignRole(...$roles)` | Aditívne priradí roly. | používať HasRoles |
| `removeRole(...$roles)` | Odpojí roly. | používať HasRoles |
| `syncRoles($roles)` | Zo zadaných rolí spraví presnú množinu. | používať HasRoles |
| `givePermissionTo(...$permissions)` | Aditívne udelí priame oprávnenia. | používať HasPermissions — Role alebo model s HasRoles |
| `revokePermissionTo(...$permissions)` | Odoberie priame oprávnenia. | používať HasPermissions |
| `syncPermissions($permissions)` | Zo zadaných priamych oprávnení spraví presnú množinu. | používať HasPermissions |
| `forgetAllAuthorization()` | Odpojí všetky roly aj priame oprávnenia. | používať HasRoles |

Rozsah je zároveň hranica. Zápis rolí odmietne model bez HasRoles — vrátane modelu Role, ktorý drží oprávnenia, nikdy nie roly. Zápis oprávnení odmietne model bez HasPermissions a oba odmietnu držiteľa, ktorý ešte nemá kľúč. Každé odmietnutie je PermissionException vyhodená skôr, než sa čokoľvek zapíše; neznáme názvy vyhodia RoleDoesNotExist alebo PermissionDoesNotExist.

## Kde nájdete podrobnosti

- role(), permission(), findRole(), findPermission(), roles() — Roly a oprávnenia.
- syncFrom(), syncRolesFrom() — Backed enumy.
- for()->… pre roly — Priraďovanie rolí; pre oprávnenia — Udeľovanie oprávnení.
- permissions(), exists(), cache() — Kešovanie.
- pruneOrphans() — Mazanie držiteľov.
- fake() — Testovanie.

## 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/permissions-for-laravel.md)
