class Gate implements Gate

Traits

Properties

protected Container $container

The container instance.

protected callable $userResolver

The user resolver callable.

protected array $abilities

All of the defined abilities.

protected array $policies

All of the defined policies.

protected array $beforeCallbacks

All of the registered before callbacks.

protected array $afterCallbacks

All of the registered after callbacks.

Methods

allow(string|null $message = null)

Create a new access response.

void
deny(string $message = 'This action is unauthorized.')

Throws an unauthorized exception.

void
__construct(Container $container, callable $userResolver, array $abilities = [], array $policies = [], array $beforeCallbacks = [], array $afterCallbacks = [])

Create a new gate instance.

bool
has(string $ability)

Determine if a given ability has been defined.

$this
define(string $ability, callable|string $callback)

Define a new ability.

$this
resource(string $name, string $class, array $abilities = null)

Define abilities for a resource.

buildAbilityCallback(string $callback)

Create the ability callback for a callback string.

$this
policy(string $class, string $policy)

Define a policy class for a given class type.

$this
before(callable $callback)

Register a callback to run before all Gate checks.

$this
after(callable $callback)

Register a callback to run after all Gate checks.

bool
allows(string $ability, array|mixed $arguments = [])

Determine if the given ability should be granted for the current user.

bool
denies(string $ability, array|mixed $arguments = [])

Determine if the given ability should be denied for the current user.

bool
check(string $ability, array|mixed $arguments = [])

Determine if the given ability should be granted for the current user.

authorize(string $ability, array|mixed $arguments = [])

Determine if the given ability should be granted for the current user.

mixed
raw(string $ability, array|mixed $arguments = [])

Get the raw result from the authorization callback.

bool
callAuthCallback(Authenticatable $user, string $ability, array $arguments)

Resolve and call the appropriate authorization callback.

bool|null
callBeforeCallbacks(Authenticatable $user, string $ability, array $arguments)

Call all of the before callbacks and return if a result is given.

void
callAfterCallbacks(Authenticatable $user, string $ability, array $arguments, bool $result)

Call all of the after callbacks with check result.

callable
resolveAuthCallback(Authenticatable $user, string $ability, array $arguments)

Resolve the callable for the given ability and arguments.

mixed
getPolicyFor(object|string $class)

Get a policy instance for a given class.

mixed
resolvePolicy(object|string $class)

Build a policy class instance of the given type.

callable
resolvePolicyCallback(Authenticatable $user, string $ability, array $arguments, mixed $policy)

Resolve the callback for a policy check.

mixed
callPolicyBefore(mixed $policy, Authenticatable $user, string $ability, array $arguments)

Call the "before" method on the given policy, if applicable.

string
formatAbilityToMethod(string $ability)

Format the policy ability into a method name.

forUser(Authenticatable|mixed $user)

Get a gate instance for the given user.

mixed
resolveUser()

Resolve the user from the user resolver.

array
abilities()

Get all of the defined abilities.

Details

protected Response allow(string|null $message = null)

Create a new access response.

Parameters

string|null $message

Return Value

Response

protected void deny(string $message = 'This action is unauthorized.')

Throws an unauthorized exception.

Parameters

string $message

Return Value

void

Exceptions

AuthorizationException

at line 67
void __construct(Container $container, callable $userResolver, array $abilities = [], array $policies = [], array $beforeCallbacks = [], array $afterCallbacks = [])

Create a new gate instance.

Parameters

Container $container
callable $userResolver
array $abilities
array $policies
array $beforeCallbacks
array $afterCallbacks

Return Value

void

at line 84
bool has(string $ability)

Determine if a given ability has been defined.

Parameters

string $ability

Return Value

bool

at line 98
$this define(string $ability, callable|string $callback)

Define a new ability.

Parameters

string $ability
callable|string $callback

Return Value

$this

Exceptions

InvalidArgumentException

at line 119
$this resource(string $name, string $class, array $abilities = null)

Define abilities for a resource.

Parameters

string $name
string $class
array $abilities

Return Value

$this

at line 141
protected Closure buildAbilityCallback(string $callback)

Create the ability callback for a callback string.

Parameters

string $callback

Return Value

Closure

at line 157
$this policy(string $class, string $policy)

Define a policy class for a given class type.

Parameters

string $class
string $policy

Return Value

$this

at line 170
$this before(callable $callback)

Register a callback to run before all Gate checks.

Parameters

callable $callback

Return Value

$this

at line 183
$this after(callable $callback)

Register a callback to run after all Gate checks.

Parameters

callable $callback

Return Value

$this

at line 197
bool allows(string $ability, array|mixed $arguments = [])

Determine if the given ability should be granted for the current user.

Parameters

string $ability
array|mixed $arguments

Return Value

bool

at line 209
bool denies(string $ability, array|mixed $arguments = [])

Determine if the given ability should be denied for the current user.

Parameters

string $ability
array|mixed $arguments

Return Value

bool

at line 221
bool check(string $ability, array|mixed $arguments = [])

Determine if the given ability should be granted for the current user.

Parameters

string $ability
array|mixed $arguments

Return Value

bool

at line 239
Response authorize(string $ability, array|mixed $arguments = [])

Determine if the given ability should be granted for the current user.

Parameters

string $ability
array|mixed $arguments

Return Value

Response

Exceptions

AuthorizationException

at line 257
protected mixed raw(string $ability, array|mixed $arguments = [])

Get the raw result from the authorization callback.

Parameters

string $ability
array|mixed $arguments

Return Value

mixed

at line 294
protected bool callAuthCallback(Authenticatable $user, string $ability, array $arguments)

Resolve and call the appropriate authorization callback.

Parameters

Authenticatable $user
string $ability
array $arguments

Return Value

bool

at line 309
protected bool|null callBeforeCallbacks(Authenticatable $user, string $ability, array $arguments)

Call all of the before callbacks and return if a result is given.

Parameters

Authenticatable $user
string $ability
array $arguments

Return Value

bool|null

at line 329
protected void callAfterCallbacks(Authenticatable $user, string $ability, array $arguments, bool $result)

Call all of the after callbacks with check result.

Parameters

Authenticatable $user
string $ability
array $arguments
bool $result

Return Value

void

at line 346
protected callable resolveAuthCallback(Authenticatable $user, string $ability, array $arguments)

Resolve the callable for the given ability and arguments.

Parameters

Authenticatable $user
string $ability
array $arguments

Return Value

callable

at line 369
mixed getPolicyFor(object|string $class)

Get a policy instance for a given class.

Parameters

object|string $class

Return Value

mixed

at line 396
mixed resolvePolicy(object|string $class)

Build a policy class instance of the given type.

Parameters

object|string $class

Return Value

mixed

at line 410
protected callable resolvePolicyCallback(Authenticatable $user, string $ability, array $arguments, mixed $policy)

Resolve the callback for a policy check.

Parameters

Authenticatable $user
string $ability
array $arguments
mixed $policy

Return Value

callable

at line 451
protected mixed callPolicyBefore(mixed $policy, Authenticatable $user, string $ability, array $arguments)

Call the "before" method on the given policy, if applicable.

Parameters

mixed $policy
Authenticatable $user
string $ability
array $arguments

Return Value

mixed

at line 464
protected string formatAbilityToMethod(string $ability)

Format the policy ability into a method name.

Parameters

string $ability

Return Value

string

at line 475
Gate forUser(Authenticatable|mixed $user)

Get a gate instance for the given user.

Parameters

Authenticatable|mixed $user

Return Value

Gate

at line 492
protected mixed resolveUser()

Resolve the user from the user resolver.

Return Value

mixed

at line 502
array abilities()

Get all of the defined abilities.

Return Value

array