ajtarragona/acl
| Install | |
|---|---|
composer require ajtarragona/acl |
|
| Latest Version: | v2.0.6 |
| PHP: | >=7.0.0 |
| License: | MIT |
| Last Updated: | Jul 22, 2025 |
| Links: | GitHub · Packagist |
Tarragona ACL for Laravel
Aquest paquet incorpora una capa de Control d'Accés (Acces Control List) que permet definir, usuaris, rols, permisos i grups. Utilitza internament el paquet Laratrust.
També s'inropora un backend d'administració d'aquesta capa ACL. Aquest backend depèn del paquet ajtarragona/web-components per funcionar correctament.
Instal·lació
composer require ajtarragona/acl
Si volem fer servir el backend a més hem de requerir el paquet web-components.
composer require ajtarragona/web-components
Configuració Inicial
A l'arxiu config/auth.php definim la classe del package al user provider:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Ajtarragona\ACL\Models\User::class,
],
]
Si fem servir LDAP, també canviar el model a l'arxiu config/ldap_auth.php
'model' => Ajtarragona\ACL\Models\User::class,
Si no trobem l'arxiu, cal publicar-lo amb la comanda:
php artisan vendor:publish --provider=Adldap\Laravel\AdldapAuthServiceProvider
Publiquem la configuració de Laratrust.
php artisan vendor:publish --tag="laratrust"
A l'arxiu config/laratrust.php (si volem fer servir grups):
- posem l'atribut
teams.enabledatrue:
...
'teams' => [
'enabled' => true,
]
...
- Definim els models:
'user_models' => [
'users' => 'Ajtarragona\ACL\Models\User',
],
...
'models' => [
/**
* Role model
*/
'role' => 'Ajtarragona\ACL\Models\Role',
/**
* Permission model
*/
'permission' => 'Ajtarragona\ACL\Models\Permission',
/**
* Team model
*/
'team' => 'Ajtarragona\ACL\Models\Team',
],
- Finalment, executem la següent comanda:
php artisan ajtarragona:acl-setup
Això prepararà les taules de la base de dades, si no existeixen, executarà la migració i crearà els permisos, rols i usuaris per defecte.
Es poden modificar els rols, permisos i usuaris per defecte a l'arxiu
config/acl_seed.php, publicant prèviament la configuració del paquet:
php artisan vendor:publish --tag=ajtarragona-acl
Se'ns crearà un usuari acl amb password acl amb els rols i permissos necessaris.
Backend
Podem accedir al backend d'administració a través de la ruta ajtarragona/acl.
Caldrà que introduim un usuari vàlid que tingui el permís de gestió d'autoritzacions.
Es pot deshabilitar el backend configurant la variable ACL_BACKEND a l'arxiu .env.
Ús
Mirar la documentació de Laratrust per a més informació.
A grans trets per comprovar si un usuari té un determinat rol o permís, ho podem fer a través d'un middleware a les rutes:
Route::group(['middleware' => ['role:admin']], function() {
...
});
Route::group(['middleware' => ['permission:edit-post']], function() {
...
});
O bé amb directives blade a les vistes:
@role('admin')
<p>This is visible to users with the admin role. Gets translated to
\Laratrust::hasRole('admin')</p>
@endrole
@permission('manage-admins')
<p>This is visible to users with the given permissions. Gets translated to
\Laratrust::can('manage-admins'). The @can directive is already taken by core
laravel authorization package, hence the @permission directive instead.</p>
@endpermission
Related Packages
Laravel user permissions (roles or groups) based on defined routes.