/** * Resolves the specified authorization if it's not resolved and checks it. * @param ResolvableAuthorizationInterface $resolvable * @param array $resolveParams * @return bool */ public function check($resolvable, $resolveParams = []) { if (!$resolvable->resolved()) { $resolvable->resolve($resolveParams); } if (!$resolvable->value()) { $this->_unauthorized(); } return true; }
/** * Returns 'NOT' operation result of resolvable * @return bool */ public function state() { return !$this->resolvable->state(); }
/** * Registers a registrable ResolvableAuthorizationInterface for later resolution * * @param string $key Name in registry * @param ResolvableAuthorizationInterface $resolvable * @return null */ public function registerResolvable($key, ResolvableAuthorizationInterface $resolvable) { if (!$resolvable->registrable()) { throw new InvalidArgumentException($key . " isn't registrable"); } ResolvableAuthorizationRegistry::register($key, $resolvable); return $resolvable; }