Cài đặt & Cấu hình

Cài đặt package

composer require spatie/laravel-permission

File cấu hình: config/permission.php

<?php

return [

    // Custom models - cho phép extend Spatie models
    'models' => [
        'permission' => \App\Models\Permission::class,
        'role' => \App\Models\Role::class,
    ],

    // Tên bảng
    'table_names' => [
        'roles' => 'roles',
        'permissions' => 'permissions',
        'model_has_permissions' => 'model_has_permissions',
        'model_has_roles' => 'model_has_roles',
        'role_has_permissions' => 'role_has_permissions',
    ],

    // Team feature (multi-tenant)
    'column_names' => [
        'team_foreign_key' => 'company_id',
    ],
    'teams' => true,
    'team_has_permission' => 'team_has_permission',

    // Middleware classes
    'middleware' => [
        'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
        'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
        'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
    ],
];

Guard

Sử dụng guard employee (khác với guard web mặc định).

Model EmployeeAccount khai báo:

protected $guard_name = 'employee';

Middleware aliases: bootstrap/app.php

$middleware->alias([
    'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
    'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
    'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
]);
← Tổng quan kiến trúc phân quyền & Multi-tenant Models →