class Gate implements Gate (View source)

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.
protected array $stringCallbacks All of the defined abilities using [email protected] notation.
protected callable|null $guessPolicyNamesUsingCallback The callback to be used to guess policy names.

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 = [], callable $guessPolicyNamesUsingCallback = null)

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 $ability, 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(iterable|string $abilities, array|mixed $arguments = [])

Determine if all of the given abilities should be granted for the current user.

bool
any(iterable|string $abilities, array|mixed $arguments = [])

Determine if any one of the given abilities should be granted for the current user.

bool
none(iterable|string $abilities, array|mixed $arguments = [])

Determine if all of the given abilities should be denied 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
canBeCalledWithUser(Authenticatable|null $user, Closure|string|array $class, string|null $method = null)

Determine whether the callback/method can be called with the given user.

bool
methodAllowsGuests(string $class, string $method)

Determine if the given class method allows guests.

bool
callbackAllowsGuests(callable $callback)

Determine if the callback allows guests.

bool
parameterAllowsGuests(ReflectionParameter $parameter)

Determine if the given parameter allows guests.

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

Resolve and call the appropriate authorization callback.

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

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

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

Call all of the after callbacks with check result.

callable
resolveAuthCallback(Authenticatable|null $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.

array
guessPolicyName(string $class)

Guess the policy name for the given class.

$this
guessPolicyNamesUsing(callable $callback)

Specify a callback to be used to guess policy names.

mixed
resolvePolicy(object|string $class)

Build a policy class instance of the given type.

bool|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.

mixed
callPolicyMethod(mixed $policy, string $method, Authenticatable|null $user, array $arguments)

Call the appropriate method on the given policy.

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.

array
policies()

Get all of the defined policies.

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

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

Create a new gate instance.

Parameters

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

Return Value

void

bool has(string $ability)

Determine if a given ability has been defined.

Parameters

string $ability

Return Value

bool

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

Define a new ability.

Parameters

string $ability
callable|string $callback

Return Value

$this

Exceptions

InvalidArgumentException

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

Define abilities for a resource.

Parameters

string $name
string $class
array $abilities

Return Value

$this

protected Closure buildAbilityCallback(string $ability, string $callback)

Create the ability callback for a callback string.

Parameters

string $ability
string $callback

Return Value

Closure

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

Define a policy class for a given class type.

Parameters

string $class
string $policy

Return Value

$this

$this before(callable $callback)

Register a callback to run before all Gate checks.

Parameters

callable $callback

Return Value

$this

$this after(callable $callback)

Register a callback to run after all Gate checks.

Parameters

callable $callback

Return Value

$this

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

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

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

Determine if all of the given abilities should be granted for the current user.

Parameters

iterable|string $abilities
array|mixed $arguments

Return Value

bool

bool any(iterable|string $abilities, array|mixed $arguments = [])

Determine if any one of the given abilities should be granted for the current user.

Parameters

iterable|string $abilities
array|mixed $arguments

Return Value

bool

bool none(iterable|string $abilities, array|mixed $arguments = [])

Determine if all of the given abilities should be denied for the current user.

Parameters

iterable|string $abilities
array|mixed $arguments

Return Value

bool

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

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

Get the raw result from the authorization callback.

Parameters

string $ability
array|mixed $arguments

Return Value

mixed

protected bool canBeCalledWithUser(Authenticatable|null $user, Closure|string|array $class, string|null $method = null)

Determine whether the callback/method can be called with the given user.

Parameters

Authenticatable|null $user
Closure|string|array $class
string|null $method

Return Value

bool

protected bool methodAllowsGuests(string $class, string $method)

Determine if the given class method allows guests.

Parameters

string $class
string $method

Return Value

bool

protected bool callbackAllowsGuests(callable $callback)

Determine if the callback allows guests.

Parameters

callable $callback

Return Value

bool

protected bool parameterAllowsGuests(ReflectionParameter $parameter)

Determine if the given parameter allows guests.

Parameters

ReflectionParameter $parameter

Return Value

bool

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

Resolve and call the appropriate authorization callback.

Parameters

Authenticatable|null $user
string $ability
array $arguments

Return Value

bool

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

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

Parameters

Authenticatable|null $user
string $ability
array $arguments

Return Value

bool|null

protected bool|null 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

bool|null

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

Resolve the callable for the given ability and arguments.

Parameters

Authenticatable|null $user
string $ability
array $arguments

Return Value

callable

mixed getPolicyFor(object|string $class)

Get a policy instance for a given class.

Parameters

object|string $class

Return Value

mixed

protected array guessPolicyName(string $class)

Guess the policy name for the given class.

Parameters

string $class

Return Value

array

$this guessPolicyNamesUsing(callable $callback)

Specify a callback to be used to guess policy names.

Parameters

callable $callback

Return Value

$this

mixed resolvePolicy(object|string $class)

Build a policy class instance of the given type.

Parameters

object|string $class

Return Value

mixed

protected bool|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

bool|callable

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

protected mixed callPolicyMethod(mixed $policy, string $method, Authenticatable|null $user, array $arguments)

Call the appropriate method on the given policy.

Parameters

mixed $policy
string $method
Authenticatable|null $user
array $arguments

Return Value

mixed

protected string formatAbilityToMethod(string $ability)

Format the policy ability into a method name.

Parameters

string $ability

Return Value

string

Gate forUser(Authenticatable|mixed $user)

Get a gate instance for the given user.

Parameters

Authenticatable|mixed $user

Return Value

Gate

protected mixed resolveUser()

Resolve the user from the user resolver.

Return Value

mixed

array abilities()

Get all of the defined abilities.

Return Value

array

array policies()

Get all of the defined policies.

Return Value

array