---
title: "Overovanie prístupu — Permissions for Laravel | Roundly"
description: "Overujte roly a efektívne oprávnenia, vypisujte názvy a priradenia, načítajte ich hromadne a filtrujte držiteľov podľa roly."
url: https://roundly-consulting.com/sk/open-source/navody/permissions-for-laravel/overovanie-pristupu
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)

# Overovanie prístupu

Čítanie patrí modelu, nie fasáde — využije relácie, ktoré ste prípadne načítali vopred. Fasáda odpovedá iba na otázky o katalógu, napríklad Permissions::exists():

```php
$user->hasRole('administrator');                 // bool
$user->hasRole(['administrator', 'editor']);     // any of

$user->hasPermissionTo('auth.users.view');       // effective: direct or via a role

$user->getRoleNames();          // Collection<string>
$user->getPermissionNames();    // Collection<string> — direct grants only
$user->getDirectPermissions();  // direct grants only
$user->getAllPermissions();     // direct ∪ via-roles, de-duped — the JWT claim source
$user->getAllPermissions()->pluck('name');
```

- hasRole() — true, ak model drží ktorúkoľvek z uvedených rolí (reťazec, enum alebo iterovateľnú štruktúru názvov, enumov a modelov Role).
- hasPermissionTo() — na držiteľovi overuje efektívne oprávnenia: priame plus všetko zdedené z rolí. Na modeli Role overuje vlastné oprávnenia roly.
- getDirectPermissions() / getPermissionNames() — iba priame oprávnenia.
- getAllPermissions() — priame ∪ z rolí, bez duplicít podľa id.

Kontroly nikdy nevyhadzujú výnimku: pre neznámy názov roly či oprávnenia jednoducho vrátia false.

## Eager loading

Kontroly použijú načítané relácie, ak sú k dispozícii. Načítajte vopred roles.permissions a permissions a overíte veľa držiteľov bez N+1 dopytov — výsledok je rovnaký pri eager aj lazy načítaní:

```php
$users = User::query()->with(['roles.permissions', 'permissions'])->get();

foreach ($users as $user) {
    $user->getAllPermissions(); // read from the loaded relations — no extra queries
}
```

## Oprávnenia v tokenoch

V API službe je getAllPermissions() prirodzeným zdrojom pre claim oprávnení v tokene:

```php
$claims = [
    'roles' => $user->getRoleNames()->all(),
    'permissions' => $user->getAllPermissions()->pluck('name')->all(),
];
```

## Query scope

Držiteľov podľa roly vyfiltrujete scopom role() — vráti modely, ktoré držia ktorúkoľvek z uvedených rolí:

```php
User::query()->role('administrator')->count();
User::query()->role(['administrator', 'editor'])->get();
```

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