PHPackages                             nextgen-tech/laravel-abilities - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. nextgen-tech/laravel-abilities

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

nextgen-tech/laravel-abilities
==============================

v0.2.0(5y ago)162MITPHPPHP ^5.6|^7.0

Since Oct 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/nextgen-tech/laravel-abilities)[ Packagist](https://packagist.org/packages/nextgen-tech/laravel-abilities)[ RSS](/packages/nextgen-tech-laravel-abilities/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (1)Dependencies (5)Versions (3)Used By (0)

Laravel Abilities
=================

[](#laravel-abilities)

Spis treści

- [Instalacja](#instalacja)
    - [composer](#composer)
    - [Service Provider](#service-provider)
    - [Middleware](#middleware)
    - [Kopiowanie plików](#kopiowanie-plik%C3%B3w)
    - [Migracje](#migracje)
- [Konfiguracja](#konfiguracja)
- [Definicja uprawnień](#definicja-uprawnie%C5%84)
    - [Grupy uprawnień](#grupy-uprawnie%C5%84)
    - [Pojedyncze uprawnienie](#pojedyncze-uprawnienie)
        - [Aliasy](#aliasy)
        - [Własna funkcja](#w%C5%82asna-funkcja)
    - [Zasoby uprawnień](#zasoby-uprawnie%C5%84)
- [Sprawdzanie uprawnień](#sprawdzanie-uprawnie%C5%84)

Instalacja
----------

[](#instalacja)

### composer

[](#composer)

W terminalu wpisz

```
composer require nextgen-tech/laravel-abilities:^1.0
```

### Service Provider

[](#service-provider)

> Jeśli aplikacja korzysta z Laravela w wersji 5.5 lub wyższej to możesz pominąć ten krok.

W pliku `config/app.php` do listy providerów dopisz:

```
'providers' => [
    ...
    NGT\Laravel\Abilities\AbilityServiceProvider::class
]
```

### Middleware

[](#middleware)

W pliku `app/Http/Kernel.php` do grupy `web` należy dopisać:

```
protected $middlewareGroups = [
    'web' => [
        ...
        \NGT\Laravel\Abilities\Middleware\CheckUserAbilities::class
    ]
]
```

### Kopiowanie plików

[](#kopiowanie-plików)

Aby skopiować z paczki niezbędne pliki wykonaj następujące polecenie:

```
php artisan vendor:publish --provider="NGT\\Laravel\\Abilities\\AbilityServiceProvider"
```

Można także opublikować część plików podając jeden z tagów: `config`, `translations`, `models` lub `migrations`:

```
php artisan vendor:publish --provider="NGT\\Laravel\\Abilities\\AbilityServiceProvider" --tag=config
```

### Migracje

[](#migracje)

Uruchom migracje

```
php artisan migrate
```

Konfiguracja
------------

[](#konfiguracja)

Konfiguracja paczki znajduje się w pliku `config/abilities.php`.

```
return [
    'path'   => base_path('routes/abilities.php'), // Ścieżka do definicji uprawnień

    'models' => [
        'user'               => App\User::class, // Model użytkowników
        'user_ability'       => App\UserAbility::class, // Model uprawnień użytkowników

        'user_group'         => App\UserGroup::class, // Model grup użytkowników
        'user_group_ability' => App\UserGroupAbility::class, // Model uprawnień grup użytkowników
    ],
];
```

Definicja uprawnień
-------------------

[](#definicja-uprawnień)

Domyślnie uprawnienia znajdują się w pliku `routes/abilities.php`. Ścieżkę tę można zmienić w konfiguracji.

Definiować uprawnienia należy za pomocą fasady `NGT\Laravel\Abilities\Facades\Ability` lub instancji klasy `NGT\Laravel\Abilities\AbilityRegistrar`.

### Grupy uprawnień

[](#grupy-uprawnień)

```
Ability::group(array $attributes, callable $abilities)
```

Grupy definiujemy za pomocą metody `group`. Grupa może składać się z wyświetlanej nazwy (`label`) oraz przedrostka (`prefix`), ale żadna z tych opcji nie jest obowiązkowa. Grupa może także zawierać w sobie inne grupy. Dane grupy są przekazywane do podrzędnych elementów znajdujących się w anonimowej funkcji.

```
Ability::group(['label' => 'Panel administracyjny', 'prefix' => 'admin'], function() {
    ...
})
```

### Pojedyncze uprawnienie

[](#pojedyncze-uprawnienie)

```
Ability::define(string $slug, string $label, array $options = [])
```

Każde uprawnienie posiada swoją uproszczoną nazwe (`$slug`) oraz wyświetlaną nazwe (`$label`). Dodatkowo można zdefiniować opcje (`$options`).

#### Aliasy

[](#aliasy)

Każde uprawnienie może posiadać aliasy. Najlepszym przykładem są akcje `create-store` oraz `edit-update`. Aby zarządzać nimi jako jednym uprawnieniem można je zdefiniować w następujący sposób:

```
Ability::define('create', 'Tworzenie', [
    'aliases' => ['store'],
]);
```

#### Własna funkcja

[](#własna-funkcja)

Aby uprawnienie nie korzystało z domyślnej metody weryfikacji można przekazać do niego funkcję. Funkcja ta zostanie wykonana zamiast domyślnej.

```
Ability::define('index', 'Wyświetlanie', [
    'callback' => function($user, $ability) {
        return $user->is_activated;
    }
])
```

### Zasoby uprawnień

[](#zasoby-uprawnień)

```
Ability::resource(string $prefix, string $label, array $options = [])
```

Podobnie jak w routingu, w uprawnieniach również można definiować zasoby. Podczas tworzenia zasobu należy podać przedrostek grupy (`$prefix`) oraz wyświetlaną nazwę grupy (`$label`).

```
Ability::resource('user', 'Użytkownicy');
```

Dodatkowo można przekazać opcje wykluczace lub dopuszczające tylko wybrane uprawnienia.

```
Ability::resource('user', 'Użytkownicy', [
    'only' => ['index', 'create', 'edit'],
]);

Ability::resource('user', 'Użytkownicy', [
    'except' => ['show', 'destroy'],
]);
```

Sprawdzanie uprawnień
---------------------

[](#sprawdzanie-uprawnień)

Kaźde uprawnienie można sprawdzać za pomocą standardowych metod klasy `Gate`:

```
Gate::allows('admin.user.index');
@can('admin.user.index');
Route::get('/', 'UserController@index')->middleware('can:admin.user.index');
```

Aby kontroler automatycznie sprawdzał uprawnienia do danych akcji można zdefiniować w nim listę powiązań między akcjami a uprawnieniami

```
class UserController extends Controller
{
    ...

    public $actionAbilities = [
        'index'  => 'admin.user.index',
        'create' => 'admin.user.create',
    ];

    ...
}
```

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

2079d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/95dd08b3f7f83eedb53d6a13b37a9c2121336d1ae1615e79d5b274e59d32ead8?d=identicon)[Dartui](/maintainers/Dartui)

---

Top Contributors

[![Dartui](https://avatars.githubusercontent.com/u/2657856?v=4)](https://github.com/Dartui "Dartui (2 commits)")

---

Tags

laravellaravel-packagephp

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/nextgen-tech-laravel-abilities/health.svg)

```
[![Health](https://phpackages.com/badges/nextgen-tech-laravel-abilities/health.svg)](https://phpackages.com/packages/nextgen-tech-laravel-abilities)
```

###  Alternatives

[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k15.1M129](/packages/laravel-pulse)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M129](/packages/roots-acorn)[nuwave/lighthouse

A framework for serving GraphQL from Laravel

3.5k11.8M116](/packages/nuwave-lighthouse)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M145](/packages/laravel-mcp)[illuminate/validation

The Illuminate Validation package.

18838.2M1.7k](/packages/illuminate-validation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
