zehirpx/laroles

Laravel的轻量级权限管理。

v0.1.6 2016-12-01 17:15 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:36:39 UTC


README

Laravel的轻量级权限管理。

要求

  • Laravel >= 5.0

安装

要开始使用,请通过Composer包管理器安装包

composer require zehirpx/laroles

接下来,在您的config/app.php文件中的providers数组中注册服务提供者

zehirpx\Laroles\LarolesServiceProvider::class,

现在,发布并迁移迁移文件

php artisan vendor:publish
php artisan migrate

运行命令后,将zehirpx\Laroles\HasRoles特质添加到您的App\User模型中。特质将为您的模型提供一些方法,允许您检查用户的角色和权限。

<?php

namespace App;

use zehirpx\Laroles\HasRoles;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasRoles;
}

快速入门

创建角色

您可以通过使用RoleRepositorycreate方法来创建角色

$roles = new zehirpx\Laroles\RoleRepository;

$roles->create('customer-support', 'Customer Support', [
            'create-servers', 'update-servers']);

分配角色给用户

您可以通过使用RoleRepositoryupdateUserRoles方法为用户分配或重新分配角色

$roles->updateUserRoles($user, ['customer-support']);

注意:用户可以分配多个角色。

检查用户权限

由于我们已经将HasRoles特质应用到App\User模型,因此我们可以使用rolesCan方法来检查用户的角色是否具有给定的权限。

$user->rolesCan('update-servers');      // true
$user->rolesCan('delete-servers');      // false

注意:roleCan方法会检查用户分配的所有角色。

检查角色权限

您还可以通过使用模型的can方法来检查Role模型上的权限

$role->can('create-servers');       // true
$role->can('delete-servers');       // false