151 lines
3.6 KiB
PHP
151 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Contracts\Auth\Access;
|
|
|
|
interface Gate
|
|
{
|
|
/**
|
|
* Determine if a given ability has been defined.
|
|
*
|
|
* @param string $ability
|
|
* @return bool
|
|
*/
|
|
public function has($ability);
|
|
|
|
/**
|
|
* Define a new ability.
|
|
*
|
|
* @param string $ability
|
|
* @param callable|string $callback
|
|
* @return $this
|
|
*/
|
|
public function define($ability, $callback);
|
|
|
|
/**
|
|
* Define abilities for a resource.
|
|
*
|
|
* @param string $name
|
|
* @param string $class
|
|
* @param array|null $abilities
|
|
* @return $this
|
|
*/
|
|
public function resource($name, $class, array $abilities = null);
|
|
|
|
/**
|
|
* Define a policy class for a given class type.
|
|
*
|
|
* @param string $class
|
|
* @param string $policy
|
|
* @return $this
|
|
*/
|
|
public function policy($class, $policy);
|
|
|
|
/**
|
|
* Register a callback to run before all Gate checks.
|
|
*
|
|
* @param callable $callback
|
|
* @return $this
|
|
*/
|
|
public function before(callable $callback);
|
|
|
|
/**
|
|
* Register a callback to run after all Gate checks.
|
|
*
|
|
* @param callable $callback
|
|
* @return $this
|
|
*/
|
|
public function after(callable $callback);
|
|
|
|
/**
|
|
* Determine if the given ability should be granted for the current user.
|
|
*
|
|
* @param string $ability
|
|
* @param array|mixed $arguments
|
|
* @return bool
|
|
*/
|
|
public function allows($ability, $arguments = []);
|
|
|
|
/**
|
|
* Determine if the given ability should be denied for the current user.
|
|
*
|
|
* @param string $ability
|
|
* @param array|mixed $arguments
|
|
* @return bool
|
|
*/
|
|
public function denies($ability, $arguments = []);
|
|
|
|
/**
|
|
* Determine if all of the given abilities should be granted for the current user.
|
|
*
|
|
* @param iterable|string $abilities
|
|
* @param array|mixed $arguments
|
|
* @return bool
|
|
*/
|
|
public function check($abilities, $arguments = []);
|
|
|
|
/**
|
|
* Determine if any one of the given abilities should be granted for the current user.
|
|
*
|
|
* @param iterable|string $abilities
|
|
* @param array|mixed $arguments
|
|
* @return bool
|
|
*/
|
|
public function any($abilities, $arguments = []);
|
|
|
|
/**
|
|
* Determine if the given ability should be granted for the current user.
|
|
*
|
|
* @param string $ability
|
|
* @param array|mixed $arguments
|
|
* @return \Illuminate\Auth\Access\Response
|
|
*
|
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
|
*/
|
|
public function authorize($ability, $arguments = []);
|
|
|
|
/**
|
|
* Inspect the user for the given ability.
|
|
*
|
|
* @param string $ability
|
|
* @param array|mixed $arguments
|
|
* @return \Illuminate\Auth\Access\Response
|
|
*/
|
|
public function inspect($ability, $arguments = []);
|
|
|
|
/**
|
|
* Get the raw result from the authorization callback.
|
|
*
|
|
* @param string $ability
|
|
* @param array|mixed $arguments
|
|
* @return mixed
|
|
*
|
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
|
*/
|
|
public function raw($ability, $arguments = []);
|
|
|
|
/**
|
|
* Get a policy instance for a given class.
|
|
*
|
|
* @param object|string $class
|
|
* @return mixed
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
*/
|
|
public function getPolicyFor($class);
|
|
|
|
/**
|
|
* Get a guard instance for the given user.
|
|
*
|
|
* @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
|
|
* @return static
|
|
*/
|
|
public function forUser($user);
|
|
|
|
/**
|
|
* Get all of the defined abilities.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function abilities();
|
|
}
|