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.

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

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.

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.

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

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

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

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

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

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 $user, string $ability, array $arguments)

Resolve the callable for the given ability and arguments.

Parameters

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