- Mensajes: 46
- Gracias recibidas: 1
Permisos y roles en Laravel con SPATIE
- luispindola
- Autor del tema
- Fuera de línea
- Administrador
Menos
Más
2 años 10 meses antes - 2 años 8 meses antes #27
por luispindola
Permisos y roles en Laravel con SPATIE Publicado por luispindola
spatie.be/docs/laravel-permission/v5/introduction
Instalacion:
composer require spatie/laravel-permission
Agregar en config/app.php
Creamos los archivos de las migraciones y los permisos con:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
Creamos las tablas con:
php artisan migrate
Cargando los middlewires en:
app/Http/Kernel.php[/
Creamos controlador para Roles:
php artisan make:controller RolController --resource
Creamos las rutas:
Definir un SuperAdmin
en App/Providers/AuthServiceProvider.php
Crear un seeder con los permisos:
php artisan make:seeder SeaderTablaPermisos
php artisan db:seed --class=SeaderTablaPermisos
SE AGREGA AL MODELO QUE SE QUIERA CONTROLAR
//Agregamos spatie
y en cada controlador:
Para controlar el acceso a los menú de AdminLTE con Spatie:[/code]
github.com/jeroennoten/Laravel-AdminLTE/wiki/Menu-Configuration
TUTORIAL:
programmerclick.com/article/35711507664/
Instalacion:
composer require spatie/laravel-permission
Agregar en config/app.php
'providers' => [
// ...
Spatie\Permission\PermissionServiceProvider::class,
];
Creamos los archivos de las migraciones y los permisos con:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
Creamos las tablas con:
php artisan migrate
Cargando los middlewires en:
app/Http/Kernel.php[/
$routeMiddleware = [
// ...
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];
Creamos controlador para Roles:
php artisan make:controller RolController --resource
Creamos las rutas:
Route::group(['middleware' => ['auth']],function(){
Route::resource('roles',RolController::class);
});
Definir un SuperAdmin
en App/Providers/AuthServiceProvider.php
public function boot()
{
$this->registerPolicies();
Gate::before(function ($user, $ability) {return $user->email == '[email protected]' ?? null;});
//
}
Crear un seeder con los permisos:
php artisan make:seeder SeaderTablaPermisos
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
//spatie
use Spatie\Permission\Models\Permission;
class SeaderTablaPermisos extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$permisos = [
//Operaciones sobre tabla roles
'ver-rol',
'crear-rol',
'editar-rol',
'borrar-rol',
//Operacions sobre tabla blogs
'ver-user',
'crear-user',
'editar-user',
'borrar-user'
];
foreach($permisos as $permiso) {
Permission::create(['name'=>$permiso]);
}
}
}
php artisan db:seed --class=SeaderTablaPermisos
SE AGREGA AL MODELO QUE SE QUIERA CONTROLAR
//Agregamos spatie
use Spatie\Permission\Traits\HasRoles;
y en cada controlador:
use Spatie\Permission\Models\Role;
Para controlar el acceso a los menú de AdminLTE con Spatie:
[code][
'text' => 'Users',
'url' => 'users',
'icon' => 'file',
'label_color' => 'success',
'can' => 'manage-blog',
'role' => 'User',
],
github.com/jeroennoten/Laravel-AdminLTE/wiki/Menu-Configuration
TUTORIAL:
programmerclick.com/article/35711507664/
Última Edición: 2 años 8 meses antes por luispindola.
Por favor, Identificarse o Crear cuenta para unirse a la conversación.
Tiempo de carga de la página: 0.071 segundos