---
title: "DI a akcie — Permissions for Laravel | Roundly"
description: "Namiesto fasády injektujte PermissionsManager alebo volajte jednoúčelové akcie priamo — s mapou metód fasády na akcie."
url: https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel/bez-fasady
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)

# DI a akcie

Máte tri rovnocenné vstupné body a výber je na vás. Fasáda je najkratšia a odporúčaná predvoľba. Manažér — RoundlyConsulting\\Permissions\\PermissionsManager, koreň fasády — ponúka to isté API ako explicitnú závislosť v konštruktore, bez statických volaní. Akcie sú jednoúčelové triedy s metódou execute(), vhodné na skladanie do vašich vlastných akcií, jobov a príkazov.

## Injektovanie manažéra

```php
use RoundlyConsulting\Permissions\PermissionsManager;

final class OnboardEditor
{
    public function __construct(private PermissionsManager $permissions) {}

    public function handle(User $user): void
    {
        $this->permissions->for($user)->assignRole($this->permissions->role('editor'));
    }
}
```

Permissions::fake() zaregistruje fake aj v kontajneri, takže manažér injektovaný po jeho vytvorení je práve fake — jeho zápisy sa zaznamenajú rovnako ako volania fasády.

## Volanie akcie

Každý zápis do katalógu či priradení si z kontajnera vyžiada jednu akciu, takže prepísanie akcie v kontajneri platí pre fasádu, manažér aj traity. Všetky akcie nájdete v RoundlyConsulting\\Permissions\\Actions:

```php
use RoundlyConsulting\Permissions\Actions\GrantRoles;
use RoundlyConsulting\Permissions\Actions\SyncFromEnum;
use RoundlyConsulting\Permissions\Enums\GrantMode;
use RoundlyConsulting\Permissions\Facades\Permissions;

app(GrantRoles::class)->execute($user, ['editor'], GrantMode::Additive);
app(SyncFromEnum::class)->execute(PostPermission::class, Permissions::permissionModel());
```

## Metóda fasády → akcia

| Metóda fasády | Akcia | execute() |
| --- | --- | --- |
| `role()` | `FindOrCreateRole` | `(string\|BackedEnum $name): Role` |
| `permission()` | `FindOrCreatePermission` | `(string\|BackedEnum $name): Permission` |
| `for()->assignRole() / syncRoles()` | `GrantRoles` | `(Model $holder, iterable $roles, GrantMode $mode): void` |
| `for()->removeRole()` | `RemoveRoles` | `(Model $holder, iterable $roles): void` |
| `for()->givePermissionTo() / syncPermissions()` | `GrantPermissions` | `(Model $holder, iterable $permissions, GrantMode $mode): void` |
| `for()->revokePermissionTo()` | `RevokePermissions` | `(Model $holder, iterable $permissions): void` |
| `for()->forgetAllAuthorization()` | `ForgetAuthorization` | `(Model $holder): void` |
| `syncFrom() / syncRolesFrom()` | `SyncFromEnum` | `(string $enum, string $model): SyncResult` |
| `pruneOrphans()` | `PruneOrphans` | `(): int` |

GrantMode::Additive nikdy neodpojí existujúce priradenia; GrantMode::Authoritative zo zadanej množiny spraví úplnú množinu. SyncFromEnum dostane triedu modelu, ako ktorý má riadky vytvárať — odovzdajte Permissions::permissionModel() alebo Permissions::roleModel() — a vráti SyncResult s created, existing a changed(). Priame volanie akcie obíde manažér, preto ho fake nezaznamená.

## Resolvery konfigurácie

Statické resolvery na RoundlyConsulting\\Permissions\\Support\\PermissionRegistrar — rolesTable(), permissionsTable(), permissionRoleTable(), modelRolesTable(), modelPermissionsTable(), keyType(), roleModel() a permissionModel() — sú tiež verejné: volajú ich publikované migrácie a môžu ich volať aj vaše migrácie či vlastné dopyty. Pozri Vlastné modely a tabuľky.

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