Gate

class Gate implements Gate (View source)

Traits

HandlesAuthorization

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

Response allow(string|null $message = null)

Create a new access response.

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

Throws an unauthorized exception.

from HandlesAuthorization
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.

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

Response 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($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.

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

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.

Gate 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 = [])

Create a new gate instance.

Parameters

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

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

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($callback)

Determine if the callback allows guests.

Parameters

$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 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

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

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

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.7/Illuminate/Auth/Access/Gate.html