diff --git a/src/Constrict/ConstrictRequest.php b/src/Constrict/ConstrictRequest.php index 67d6e4d..173faed 100644 --- a/src/Constrict/ConstrictRequest.php +++ b/src/Constrict/ConstrictRequest.php @@ -3,6 +3,7 @@ declare(strict_types=1); namespace Kiri\Router\Constrict; +use Kiri\Router\Base\AuthorizationInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\UriInterface; @@ -33,6 +34,31 @@ class ConstrictRequest extends Message implements RequestInterface, ServerReques private array $serverParams = []; + /** + * @var AuthorizationInterface|null + */ + private ?AuthorizationInterface $authorization = null; + + /** + * @return AuthorizationInterface|null + */ + public function getAuthority(): ?AuthorizationInterface + { + return $this->authorization; + } + + + /** + * @param AuthorizationInterface $authorization + * @return RequestInterface + */ + public function withAuthority(AuthorizationInterface $authorization): RequestInterface + { + $this->authorization = $authorization; + return $this; + } + + /** * @return bool */ diff --git a/src/Request.php b/src/Request.php index 2fb7cdc..3bbf1d2 100644 --- a/src/Request.php +++ b/src/Request.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Kiri\Router; use Kiri\Di\Context; +use Kiri\Router\Base\AuthorizationInterface; use Kiri\Router\Base\ExceptionHandlerDispatcher; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ServerRequestInterface; @@ -13,6 +14,7 @@ use Psr\Http\Message\UriInterface; /** * @property-read bool $isPost + * @property-read AuthorizationInterface $authority */ class Request implements ServerRequestInterface { @@ -27,6 +29,25 @@ class Request implements ServerRequestInterface public string $exception = ExceptionHandlerDispatcher::class; + /** + * @return AuthorizationInterface|null + */ + public function getAuthority(): ?AuthorizationInterface + { + return $this->__call__(__FUNCTION__); + } + + + /** + * @param AuthorizationInterface $authorization + * @return RequestInterface + */ + public function withAuthority(AuthorizationInterface $authorization): RequestInterface + { + return $this->__call__(__FUNCTION__, $authorization); + } + + /** * @param string $method * @param mixed ...$params