berg/authorize

此包已废弃,不再维护。未建议替代包。

基本的ACL/角色包

0.1.1 2015-10-07 19:41 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:47:56 UTC


README

Build Status

Authorizer

一个超级简单的基于角色的授权包。这里提供的示例使用Eloquent,但该库是框架无关的。

安装

composer require berg/authorizer

使用

将特质的使用语句添加到您的用户模型中

use Berg\Authorizer\AuthorizerTrait;

此特质要求用户类必须有一个名为 getRoles() 的方法,该方法将返回一个包含您角色名称的数组。然后您可以访问 ishasAccessTo 方法。使用方法

$user->is('admin');

$model = new ModelName($id);
$user->hasAccessTo($model);

ishasAccessTo 都返回一个布尔值。hasAccessTo 要求您作为参数传递的模型包含一个名为 authorize(User $user); 的方法。

is(string $roleName)

示例检查角色

if($user->is('admin')) {}

hasAccessTo(User $user)

要使模型可授权,请将 Authorizable 接口添加到您的模型中。该接口要求您在模型中添加一个名为 authorize($user) 的方法。在该方法中添加任何所需的授权逻辑并返回一个布尔值。

class Car 
{
    public function authorize(User $user)
    {
        return $this->userId === $user->id;
    }
}

$carId = 1;
$car = new Car($carId);
if($user->hasAccessTo($car)) {}