Add proper types to the `*AuthAction` controllers
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 10 Aug 2022 13:38:14 +0000 (15:38 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 10 Aug 2022 13:38:29 +0000 (15:38 +0200)
wcfsetup/install/files/lib/action/FacebookAuthAction.class.php
wcfsetup/install/files/lib/action/GithubAuthAction.class.php
wcfsetup/install/files/lib/action/GoogleAuthAction.class.php
wcfsetup/install/files/lib/action/TwitterAuthAction.class.php

index 8c2718e4b8143d9bbbb33eabd5cce80bfa1b9345..ac512c1b57a087900489234f91179046b15cf533 100644 (file)
@@ -4,6 +4,7 @@ namespace wcf\action;
 
 use GuzzleHttp\Psr7\Request;
 use Laminas\Diactoros\Response\RedirectResponse;
+use Psr\Http\Message\ResponseInterface;
 use wcf\data\user\User;
 use wcf\form\AccountManagementForm;
 use wcf\form\RegisterForm;
@@ -120,7 +121,7 @@ final class FacebookAuthAction extends AbstractOauth2Action
     /**
      * @inheritDoc
      */
-    protected function processUser(OauthUser $oauthUser)
+    protected function processUser(OauthUser $oauthUser): ResponseInterface
     {
         $user = User::getUserByAuthData('facebook:' . $oauthUser->getId());
 
index 62b6ce05700885944c01ab6c3b4cbfd73b669327..90b00ef4e86939962070771e799315f33c06d776 100644 (file)
@@ -5,6 +5,7 @@ namespace wcf\action;
 use GuzzleHttp\Psr7\Request;
 use Laminas\Diactoros\Response\RedirectResponse;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Message\ResponseInterface;
 use wcf\data\user\User;
 use wcf\form\AccountManagementForm;
 use wcf\form\RegisterForm;
@@ -110,7 +111,7 @@ final class GithubAuthAction extends AbstractOauth2Action
     /**
      * @inheritDoc
      */
-    protected function processUser(OauthUser $oauthUser)
+    protected function processUser(OauthUser $oauthUser): ResponseInterface
     {
         $user = User::getUserByAuthData('github:' . $oauthUser->getId());
 
index 69638cf66c878a6aa2e900a281fd1af907138667..402427e2a7ac7038c6952474a8f9ada88dbb2de8 100644 (file)
@@ -4,6 +4,7 @@ namespace wcf\action;
 
 use GuzzleHttp\Psr7\Request;
 use Laminas\Diactoros\Response\RedirectResponse;
+use Psr\Http\Message\ResponseInterface;
 use wcf\data\user\User;
 use wcf\form\AccountManagementForm;
 use wcf\form\RegisterForm;
@@ -41,7 +42,7 @@ final class GoogleAuthAction extends AbstractOauth2Action
      */
     private function getConfiguration()
     {
-        if (!$this->configuration) {
+        if (!isset($this->configuration)) {
             $request = new Request('GET', 'https://accounts.google.com/.well-known/openid-configuration');
             $response = $this->getHttpClient()->send($request);
 
@@ -132,7 +133,7 @@ final class GoogleAuthAction extends AbstractOauth2Action
     /**
      * @inheritDoc
      */
-    protected function processUser(OauthUser $oauthUser)
+    protected function processUser(OauthUser $oauthUser): ResponseInterface
     {
         $user = User::getUserByAuthData('google:' . $oauthUser->getId());
 
index 0e859e03cd50847ac3bc2daccb13ea7a2bafc7b4..009f4fd7116b71aed43f35916ba18089bbbfdf80 100644 (file)
@@ -8,6 +8,7 @@ use Laminas\Diactoros\Response\RedirectResponse;
 use ParagonIE\ConstantTime\Base64;
 use ParagonIE\ConstantTime\Hex;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Message\ResponseInterface;
 use wcf\data\user\User;
 use wcf\form\RegisterForm;
 use wcf\system\event\EventHandler;
@@ -37,10 +38,7 @@ final class TwitterAuthAction extends AbstractAction
      */
     public $neededModules = ['TWITTER_PUBLIC_KEY', 'TWITTER_PRIVATE_KEY'];
 
-    /**
-     * @var ClientInterface
-     */
-    private $httpClient;
+    private ClientInterface $httpClient;
 
     /**
      * @inheritDoc
@@ -57,7 +55,7 @@ final class TwitterAuthAction extends AbstractAction
     /**
      * @inheritDoc
      */
-    public function execute()
+    public function execute(): ResponseInterface
     {
         parent::execute();
 
@@ -106,7 +104,7 @@ final class TwitterAuthAction extends AbstractAction
     /**
      * Processes the user (e.g. by registering session variables and redirecting somewhere).
      */
-    protected function processUser(OauthUser $oauthUser)
+    protected function processUser(OauthUser $oauthUser): ResponseInterface
     {
         $user = User::getUserByAuthData('twitter:' . $oauthUser->getId());
 
@@ -323,7 +321,7 @@ final class TwitterAuthAction extends AbstractAction
     /**
      * Initiates the OAuth flow by redirecting to the '/authenticate' URL.
      */
-    private function initiate()
+    private function initiate(): ResponseInterface
     {
         $data = $this->getRequestToken();
 
@@ -343,9 +341,8 @@ final class TwitterAuthAction extends AbstractAction
      * Builds the OAuth authorization header.
      *
      * @param array $parameters
-     * @return  string
      */
-    public function buildOAuthHeader(array $parameters)
+    public function buildOAuthHeader(array $parameters): string
     {
         $header = '';
         foreach ($parameters as $key => $val) {
@@ -364,20 +361,14 @@ final class TwitterAuthAction extends AbstractAction
 
     /**
      * Creates an OAuth 1 signature.
-     *
-     * @param string $url
-     * @param array $parameters
-     * @param string $tokenSecret
-     * @param string $method
-     * @return  string
      */
     public function createSignature(
-        $url,
+        string $url,
         array $parameters,
         #[\SensitiveParameter]
-        $tokenSecret = '',
-        $method = 'POST'
-    ) {
+        string $tokenSecret = '',
+        string $method = 'POST'
+    ): string {
         $tmp = [];
         foreach ($parameters as $key => $val) {
             $tmp[\rawurlencode($key)] = \rawurlencode($val);
@@ -405,7 +396,7 @@ final class TwitterAuthAction extends AbstractAction
      */
     final protected function getHttpClient(): ClientInterface
     {
-        if (!$this->httpClient) {
+        if (!isset($this->httpClient)) {
             $this->httpClient = HttpFactory::makeClientWithTimeout(5);
         }