Efficiently\AuthorityController\Authority::authorize PHP Method

authorize() public method

public authorize ( $action, $resource, $args = null )
    public function authorize($action, $resource, $args = null)
    {
        $args = is_array($args) ? $args : array_slice(func_get_args(), 2);
        $message = null;
        $options = array_extract_options($args);
        if (is_array($options) && array_key_exists('message', $options)) {
            $message = $options['message'];
        } elseif (is_array($args) && array_key_exists(0, $args)) {
            list($message) = $args;
            unset($args[0]);
        }
        if ($this->cannot($action, $resource, $args)) {
            $resourceClass = $resource;
            if (is_object($resourceClass)) {
                $resourceClass = get_classname($resourceClass);
            } elseif (is_array($resourceClass)) {
                $resourceClass = head(array_values($resourceClass));
                if (is_object($resourceClass)) {
                    $resourceClass = get_classname($resourceClass);
                }
            }
            $message = $message ?: $this->getUnauthorizedMessage($action, $resourceClass);
            throw new Exceptions\AccessDenied($message, $action, $resourceClass);
        }
        return $resource;
    }