berg / authorize
此包已废弃,不再维护。未建议替代包。
基本的ACL/角色包
0.1.1
2015-10-07 19:41 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.8.*
This package is not auto-updated.
Last update: 2020-01-24 15:47:56 UTC
README
Authorizer
一个超级简单的基于角色的授权包。这里提供的示例使用Eloquent,但该库是框架无关的。
安装
composer require berg/authorizer
使用
将特质的使用语句添加到您的用户模型中
use Berg\Authorizer\AuthorizerTrait;
此特质要求用户类必须有一个名为 getRoles()
的方法,该方法将返回一个包含您角色名称的数组。然后您可以访问 is
和 hasAccessTo
方法。使用方法
$user->is('admin');
$model = new ModelName($id);
$user->hasAccessTo($model);
is
和 hasAccessTo
都返回一个布尔值。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)) {}