El paquete de creación de permisos de roles de Spatie permite crear ACL en Laravel 12. Proporciona instrucciones sobre cómo asignar un rol a un usuario, cómo asignar permisos a un usuario y cómo asignar permisos a roles. Escribiré instrucciones paso a paso para crear roles y permisos en la aplicación de Laravel 12.
Los roles y permisos permiten crear varios tipos de usuarios con diferentes roles y permisos. Por ejemplo, algunos usuarios solo pueden ver el módulo de lista de elementos, mientras que otros también pueden editar y eliminar elementos.
En este ejemplo, creé tres módulos como se enumeran a continuación:
- Gestión de usuarios
- Gestión de roles
- Gestión de productos
Tras registrar un usuario, no tendrá ningún rol. Por lo tanto, puede editar sus datos y asignarse el rol de administrador desde la Gestión de Usuarios. Después, puede crear su propio rol con permisos como lista de roles, creación de roles, edición de roles, eliminación de roles, lista de productos, creación de productos, edición de productos y eliminación de productos. Puede probar esto asignando un nuevo usuario y comprobándolo.
Solo tienes que seguir unos pocos pasos y obtendrás un ejemplo completo de ACL:
Ejemplo de roles y permisos para ACL de Laravel 12
- Paso 1: Instalar Laravel 12
- Paso 2: Instale el paquete spatie/laravel-permission
- Paso 3: Crear la migración del producto
- Paso 4: Crear modelos
- Paso 5: Agregar middleware
- Paso 6: Crear autenticación
- Paso 7: Crear rutas
- Paso 8: Agregar controladores
- Paso 9: Agregar archivos Blade
- Paso 10: Crear un sembrador para permisos y usuarios administradores
- Ejecutar la aplicación Laravel
Paso 1: Instalar Laravel 12
Primero, necesitamos obtener una aplicación nueva de Laravel 12 usando el siguiente comando, ya que estamos empezando desde cero. Abre tu terminal o símbolo del sistema y ejecuta el siguiente comando:
composer create-project laravel/laravel example-app
Paso 2: Instale el paquete spatie/laravel-permission
Ahora, necesitamos instalar el paquete Spatie para ACL; de esta manera, podemos usar su método. También instalaremos el paquete de colección de formularios. Abra su terminal y ejecute el siguiente comando.
composer require spatie/laravel-permission
También podemos personalizar los cambios en el paquete Spatie, por lo que si también desea realizar cambios, puede ejecutar el siguiente comando y obtener el archivo de configuración en config/permission.php y los archivos de migración.
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
Ahora puede ver el archivo permission.php y una migración. Puede ejecutar la migración con el siguiente comando:
php artisan migrate
Paso 3: Crear la migración del producto
En este paso, tenemos que crear tres migraciones para la tabla de productos usando el siguiente comando:
php artisan make:migration create_products_table
Tabla de productos:
id();
$table->string('name');
$table->text('detail');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down(): void
{
Schema::dropIfExists('products');
}
};
Ahora, ejecute la migración:
php artisan migrate
Paso 4: Crear modelos
En este paso, debemos crear un modelo para las tablas Usuario y Producto. Si crea un proyecto nuevo, tendrá un modelo Usuario, así que simplemente reemplace el código. Para el otro, deberá crear uno.
app/Models/User.php
'datetime',
'password' => 'hashed',
];
}
}
app/Models/Product.php
Paso 5: Agregar middleware
El paquete Spatie proporciona su middleware incorporado, que podemos usar de forma sencilla y se muestra a continuación:
role
permission
Entonces, tenemos que agregar middleware en el archivo app.php de esta manera:
bootstrap/app.php
withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class
]);
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
Paso 6: Crear autenticación
Debes seguir algunos pasos para realizar la autenticación en tu aplicación Laravel 12.
Primero, debes instalar el paquete laravel/ui como se muestra a continuación:
composer require laravel/ui
Aquí, necesitamos generar el andamiaje de autenticación en Laravel 12 usando el comando Laravel UI. Así que, generémoslo con el siguiente comando:
php artisan ui bootstrap --auth
Ahora debe ejecutar el comando npm; de lo contrario, no podrá ver el mejor diseño de la página de inicio de sesión y registro.
Instalar NPM:
npm install
Ejecutar NPM:
npm run build