, (*1)
Authorizer
A super simple role-based authorization package. The examples here use Eloquent but the library is framework-agnostic., (*2)
Installation
composer require berg/authorizer
, (*3)
Usage
Add the use statement for the trait to your user model:, (*4)
use Berg\Authorizer\AuthorizerTrait;
This trait requires that the user class has a method named getRoles()
that will return an array of your role names. You can then access the is
and hasAccessTo
methods. Usage:, (*5)
$user->is('admin');
$model = new ModelName($id);
$user->hasAccessTo($model);
is
and hasAccessTo
both return a boolean value. hasAccessTo
requires that the model you pass as an argument contains a method authorize(User $user);
., (*6)
is(string $roleName)
Example checking role:, (*7)
if($user->is('admin')) {}
hasAccessTo(User $user)
To make a model authorizable, add the Authorizable
interface to your model. This interface requires you add a single method, authorize($user)
to your model. Add any required authorization logic in that method and return a boolean value., (*8)
class Car
{
public function authorize(User $user)
{
return $this->userId === $user->id;
}
}
$carId = 1;
$car = new Car($carId);
if($user->hasAccessTo($car)) {}