Ladder — это пакет от Enea Dhiamandi , который предоставляет разрешения для Laravel. Это упрощает управление ролями и разрешениями, избегая хранения всего в базе данных. Вдохновленный Jestream, он предлагает статический подход, который сокращает количество запросов и обеспечивает неизменность для легких модификаций.
Используя предоставленную HasRoles
черту, вы можете получить доступ к методам для управления ролями и разрешениями пользователей:
use Ladder\HasRoles;
class User extends Authenticatable
{
use HasRoles;
}
// Determine if the user has a role
$user->hasRole(string $role): bool
// Permissions for a given role
$user->rolePermissions(string $role): ?array
// Determine if the user role has a given permission...
$user->hasRolePermission(string $role, string $permission) : bool
// Determine if the user has given permission...
$user->hasPermission(string $permission) : bool
Для управления ролями можно использовать ассоциацию пользовательской модели roles()
для создания роли для пользователя. Затем вы можете проверить детализированные разрешения, используя метод hasPermission()
:
$user->roles()->updateOrCreate(['role' => 'admin']);
$user->hasPermission('post:update');
Чтобы начать работу с этим пакетом в вашем проекте Laravel, вы можете установить его с помощью composer и artisan. Он включает в себя миграцию базы данных для ролей, поэтому вам также потребуется перенести базу данных:
composer require eneadm/ladder
php artisan ladder:install
php artisan migrate
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.