---
title: "Udeľovanie oprávnení — Permissions for Laravel | Roundly"
description: "Udeľujte, odoberajte a synchronizujte oprávnenia na rolách aj priamo na modeli — predvolene aditívne, na požiadanie autoritatívne."
url: https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel/udelovanie-opravneni
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)

# Udeľovanie oprávnení

Oprávnenia udeľujte cez Permissions::for($holder). givePermissionTo je aditívne — nikdy neodoberie oprávnenia, ktoré zaregistroval niekto iný — takže nezávislé služby si môžu bezpečne registrovať vlastné oprávnenia. syncPermissions je autoritatívne: zadaná množina sa stane úplnou množinou. Rovnaké metódy na modeli sú len skratkou pre tie isté volania:

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

Permissions::for($role)->givePermissionTo('auth.users.view', 'auth.users.edit'); // additive
Permissions::for($role)->syncPermissions(['auth.users.view']);                   // exact set
Permissions::for($role)->revokePermissionTo('auth.users.view');

// The same, on the model — the trait delegates to the same manager:
$role->givePermissionTo('auth.users.view', 'auth.users.edit');
$role->syncPermissions(['auth.users.view']);
$role->revokePermissionTo('auth.users.view');
```

## Akceptované argumenty

Každá metóda prijíma názvy oprávnení, backed enumy, modely Permission, polia aj vnorené iterovateľné štruktúry — ľubovoľne kombinované a bez duplicít. givePermissionTo a revokePermissionTo sú variadické; syncPermissions prijíma jednu iterovateľnú štruktúru:

```php
$role->givePermissionTo('auth.users.view');                       // one name
$role->givePermissionTo('auth.users.view', 'auth.users.edit');    // variadic
$role->givePermissionTo(['auth.users.view', 'auth.users.edit']);  // an array
$role->givePermissionTo([$permission, PermissionName::EditUsers]); // models + backed enums

$role->revokePermissionTo('auth.users.view', 'auth.users.edit');  // variadic too
$role->syncPermissions([$permission, 'auth.users.edit']);         // one iterable
```

Neznámy názov vyhodí PermissionDoesNotExist; neuložený model Permission vyhodí PermissionException. Oprávnenia pred udelením zaregistrujte cez Permissions::permission() alebo Permissions::syncFrom().

## Priame oprávnenia na modeli

Tie isté metódy fungujú na každom modeli s HasRoles a spravujú jeho priame oprávnenia nezávisle od rolí. syncPermissions na používateľovi nahradí iba priamu množinu — oprávnenia zdedené z rolí zostanú nedotknuté:

```php
// Direct grants on the user itself — independent of any role
Permissions::for($user)->givePermissionTo('reports.export');
Permissions::for($user)->syncPermissions(['reports.export', 'reports.schedule']); // replaces the direct set only
Permissions::for($user)->revokePermissionTo('reports.schedule');

$user->givePermissionTo('reports.export'); // the trait shorthand
```

## Prečo na aditívnosti záleží

Moduly môžu udeľovať oprávnenia tej istej role bez vzájomnej koordinácie:

```php
// Billing module
$role->givePermissionTo('billing.invoices.view');

// Reports module — registers independently, never strips billing's grant
$role->givePermissionTo('reports.export');

$role->getPermissionNames(); // billing.invoices.view + reports.export
```

## Režimy udeľovania

Obe správania modeluje enum GrantMode:

```php
use RoundlyConsulting\Permissions\Enums\GrantMode;

GrantMode::Additive->detaches();      // false — givePermissionTo()
GrantMode::Authoritative->detaches(); // true  — syncPermissions()
```

Každý zápis oprávnení beží v databázovej transakcii, takže súbežná kontrola cez Gate nikdy neuvidí napoly vykonanú synchronizáciu, a každý zápis po potvrdení transakcie invaliduje cache katalógu oprávnení.

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