From 2d41c2d46a6a97f279bf00824d33c5c25826d4a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Sun, 16 Apr 2023 16:06:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Constrict/ConstrictRequest.php | 26 ++++++++++++++++++++++++++ src/Request.php | 21 +++++++++++++++++++++ 2 files changed, 47 insertions(+) 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