From 28e749a34bb22e56b0ec8451c41d76adb3a1b840 Mon Sep 17 00:00:00 2001 From: Florian Wessels Date: Wed, 7 Feb 2018 14:06:03 +0100 Subject: [PATCH 1/9] [TASK] Add annotations --- Classes/OpenidService.php | 3 +++ Classes/OpenidStore.php | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/Classes/OpenidService.php b/Classes/OpenidService.php index 2956753..c6205ce 100644 --- a/Classes/OpenidService.php +++ b/Classes/OpenidService.php @@ -17,6 +17,7 @@ use TYPO3\CMS\Core\Crypto\Random; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Service\AbstractService; use TYPO3\CMS\Core\TimeTracker\TimeTracker; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; @@ -280,6 +281,7 @@ protected function getUserRecord($openIDIdentifier) $openIDIdentifier = $this->normalizeOpenID($openIDIdentifier); // $openIDIdentifier always has a trailing slash // but tx_openid_openid field possibly not so check for both alternatives in database + /** @var QueryBuilder $queryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($this->authenticationInformation['db_user']['table']); $queryBuilder->getRestrictions()->removeAll(); $record = $queryBuilder @@ -475,6 +477,7 @@ protected function normalizeOpenID($openIDIdentifier) } // A URI with a missing scheme is normalized to a http URI if (!preg_match('#^https?://#', $openIDIdentifier)) { + /** @var QueryBuilder $queryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($this->authenticationInformation['db_user']['table']); $queryBuilder->getRestrictions()->removeAll(); $row = $queryBuilder diff --git a/Classes/OpenidStore.php b/Classes/OpenidStore.php index 6dffb5b..788b5ea 100644 --- a/Classes/OpenidStore.php +++ b/Classes/OpenidStore.php @@ -14,7 +14,9 @@ * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -95,6 +97,7 @@ public function storeAssociation($serverUrl, $association) */ public function cleanupAssociations() { + /** @var QueryBuilder $queryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::ASSOCIATION_TABLE_NAME); $queryBuilder->getRestrictions()->removeAll(); return $queryBuilder->delete(self::ASSOCIATION_TABLE_NAME)->where('expires <= ' . time())->execute(); @@ -110,6 +113,7 @@ public function cleanupAssociations() public function getAssociation($serverUrl, $handle = null) { $this->cleanupAssociations(); + /** @var QueryBuilder $queryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::ASSOCIATION_TABLE_NAME); $queryBuilder->getRestrictions()->removeAll(); $queryBuilder->select('uid', 'content')->from(self::ASSOCIATION_TABLE_NAME)->where( @@ -147,6 +151,7 @@ public function getAssociation($serverUrl, $handle = null) */ public function removeAssociation($serverUrl, $handle) { + /** @var QueryBuilder $queryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::ASSOCIATION_TABLE_NAME); $queryBuilder->getRestrictions()->removeAll(); $deletedCount = $queryBuilder @@ -166,6 +171,7 @@ public function removeAssociation($serverUrl, $handle) public function cleanupNonces() { $where = 'crdate < ' . (time() - self::NONCE_STORAGE_TIME); + /** @var QueryBuilder $queryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::NONCE_TABLE_NAME); $queryBuilder->getRestrictions()->removeAll(); $queryBuilder->delete(self::NONCE_TABLE_NAME)->where($where)->execute(); @@ -189,6 +195,7 @@ public function useNonce($serverUrl, $timestamp, $salt) 'server_url' => $serverUrl, 'tstamp' => $timestamp ]; + /** @var Connection $connection */ $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable(self::NONCE_TABLE_NAME); $affectedRows = $connection->createQueryBuilder()->insert(self::NONCE_TABLE_NAME)->values($values)->execute(); $result = $affectedRows > 0; From 314cdf298201d2b758806137fccbf2bb4841c95e Mon Sep 17 00:00:00 2001 From: Florian Wessels Date: Wed, 7 Feb 2018 14:06:23 +0100 Subject: [PATCH 2/9] [TASK] Replace deprecated methods --- Classes/OpenidService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/OpenidService.php b/Classes/OpenidService.php index c6205ce..667b4e4 100644 --- a/Classes/OpenidService.php +++ b/Classes/OpenidService.php @@ -521,7 +521,7 @@ protected function normalizeOpenID($openIDIdentifier) */ protected function getBackPath() { - $extPath = ExtensionManagementUtility::siteRelPath('openid'); + $extPath = ExtensionManagementUtility::extPath('openid'); $segmentCount = count(explode('/', $extPath)); $path = str_pad('', $segmentCount * 3, '../') . TYPO3_mainDir; return $path; From ef527e6011c6c6e5b853bf2d5f2ff9c53ae3bedd Mon Sep 17 00:00:00 2001 From: Florian Wessels Date: Wed, 7 Feb 2018 14:06:47 +0100 Subject: [PATCH 3/9] [TASK] Use proper variable name for query builder --- Classes/OpenidStore.php | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Classes/OpenidStore.php b/Classes/OpenidStore.php index 788b5ea..03dc360 100644 --- a/Classes/OpenidStore.php +++ b/Classes/OpenidStore.php @@ -43,38 +43,39 @@ class OpenidStore extends \Auth_OpenID_OpenIDStore */ public function storeAssociation($serverUrl, $association) { - $builder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::ASSOCIATION_TABLE_NAME); - $builder->getRestrictions()->removeAll(); + /** @var QueryBuilder $queryBuilder */ + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::ASSOCIATION_TABLE_NAME); + $queryBuilder->getRestrictions()->removeAll(); - $builder->getConnection()->beginTransaction(); + $queryBuilder->getConnection()->beginTransaction(); - $existingAssociations = $builder + $existingAssociations = $queryBuilder ->count('*') ->from(self::ASSOCIATION_TABLE_NAME) ->where( - $builder->expr()->eq('server_url', $builder->createNamedParameter($serverUrl)), - $builder->expr()->eq('assoc_handle', $builder->createNamedParameter($association->handle)), - $builder->expr()->eq('expires', $builder->createNamedParameter(time(), \PDO::PARAM_INT)) + $queryBuilder->expr()->eq('server_url', $queryBuilder->createNamedParameter($serverUrl)), + $queryBuilder->expr()->eq('assoc_handle', $queryBuilder->createNamedParameter($association->handle)), + $queryBuilder->expr()->eq('expires', $queryBuilder->createNamedParameter(time(), \PDO::PARAM_INT)) ) ->execute() ->fetchColumn(); if ($existingAssociations) { - $builder + $queryBuilder ->update(self::ASSOCIATION_TABLE_NAME) ->values([ 'content' => base64_encode(serialize($association)), 'tstamp' => time() ]) ->where( - $builder->expr()->eq('server_url', $builder->createNamedParameter($serverUrl)), - $builder->expr()->eq('assoc_handle', $builder->createNamedParameter($association->handle)), - $builder->expr()->eq('expires', $builder->createNamedParameter(time(), \PDO::PARAM_INT)) + $queryBuilder->expr()->eq('server_url', $queryBuilder->createNamedParameter($serverUrl)), + $queryBuilder->expr()->eq('assoc_handle', $queryBuilder->createNamedParameter($association->handle)), + $queryBuilder->expr()->eq('expires', $queryBuilder->createNamedParameter(time(), \PDO::PARAM_INT)) ) ->execute(); } else { // In the next query we can get race conditions. sha1_hash prevents many associations from being stored for one server - $builder + $queryBuilder ->insert(self::ASSOCIATION_TABLE_NAME) ->values([ 'assoc_handle' => $association->handle, @@ -87,7 +88,7 @@ public function storeAssociation($serverUrl, $association) ->execute(); } - $builder->getConnection()->commit(); + $queryBuilder->getConnection()->commit(); } /** From e6907fa808b5cb85b4e1b66386241502982cca68 Mon Sep 17 00:00:00 2001 From: Florian Wessels Date: Wed, 7 Feb 2018 14:07:19 +0100 Subject: [PATCH 4/9] [TASK] Update dependencies and version in ext_emconf.conf --- ext_emconf.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ext_emconf.php b/ext_emconf.php index eb80aef..56fbef9 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -8,12 +8,11 @@ 'uploadfolder' => 0, 'createDirs' => '', 'clearCacheOnLoad' => 0, - 'version' => '8.0.2', + 'version' => '9.0.0', 'constraints' => [ 'depends' => [ - 'typo3' => '8.7.0-8.7.99', - 'sv' => '8.7.0-8.7.99', - 'setup' => '8.7.0-8.7.99', + 'typo3' => '9.0.0-9.1.99', + 'setup' => '9.0.0-9.1.99', ], 'conflicts' => [ 'naw_openid' => '', From 534ccc3c57235f1a0fb6f54b21db92f75ac49066 Mon Sep 17 00:00:00 2001 From: Florian Wessels Date: Wed, 7 Feb 2018 14:08:28 +0100 Subject: [PATCH 5/9] [TASK] Update dependencies in composer.json --- composer.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 28411bf..3409983 100644 --- a/composer.json +++ b/composer.json @@ -21,9 +21,8 @@ "ext-gmp": "*", "ext-curl": "*", "ext-dom": "*", - "typo3/cms-core": "~8.5", - "typo3/cms-sv": "~8.5", - "typo3/cms-setup": "~8.5" + "typo3/cms-core": "~9.0", + "typo3/cms-setup": "~9.0" }, "replace": { "openid": "self.version", From e1e215da5d9946894a4e5460eb76441060dd7449 Mon Sep 17 00:00:00 2001 From: Dmitry Dulepov Date: Thu, 4 Oct 2018 15:22:13 +0300 Subject: [PATCH 6/9] [TASK] Update compatibility to TYPO3 9.5.x --- composer.json | 6 +++--- ext_emconf.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 3409983..7ab716d 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,7 @@ "authors": [ { "name": "Dmitry Dulepov", - "email": "dmitry@typo3.org", + "email": "dmitry.dulepov@gmail.com", "role": "Developer" }, { @@ -21,8 +21,8 @@ "ext-gmp": "*", "ext-curl": "*", "ext-dom": "*", - "typo3/cms-core": "~9.0", - "typo3/cms-setup": "~9.0" + "typo3/cms-core": "~9.5", + "typo3/cms-setup": "~9.5" }, "replace": { "openid": "self.version", diff --git a/ext_emconf.php b/ext_emconf.php index 56fbef9..cabfe94 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -8,11 +8,11 @@ 'uploadfolder' => 0, 'createDirs' => '', 'clearCacheOnLoad' => 0, - 'version' => '9.0.0', + 'version' => '9.5.0', 'constraints' => [ 'depends' => [ - 'typo3' => '9.0.0-9.1.99', - 'setup' => '9.0.0-9.1.99', + 'typo3' => '9.5.0-9.5.999', + 'setup' => '9.5.0-9.1.999', ], 'conflicts' => [ 'naw_openid' => '', From 7f1cef2419b950754b840f998267826eb1b73a49 Mon Sep 17 00:00:00 2001 From: Dmitry Dulepov Date: Thu, 4 Oct 2018 15:22:57 +0300 Subject: [PATCH 7/9] [TASK] Remove code that is no longer needed --- Classes/OpenidService.php | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Classes/OpenidService.php b/Classes/OpenidService.php index 667b4e4..0516c48 100644 --- a/Classes/OpenidService.php +++ b/Classes/OpenidService.php @@ -171,7 +171,6 @@ public function getUser() } $userRecord = null; if ($this->openIDResponse instanceof \Auth_OpenID_ConsumerResponse) { - $GLOBALS['BACK_PATH'] = $this->getBackPath(); // We are running inside the OpenID return script // Note: we cannot use $this->openIDResponse->getDisplayIdentifier() // because it may return a different identifier. For example, @@ -514,19 +513,6 @@ protected function normalizeOpenID($openIDIdentifier) return $openIDIdentifier; } - /** - * Calculates the path to the TYPO3 directory from the current directory - * - * @return string - */ - protected function getBackPath() - { - $extPath = ExtensionManagementUtility::extPath('openid'); - $segmentCount = count(explode('/', $extPath)); - $path = str_pad('', $segmentCount * 3, '../') . TYPO3_mainDir; - return $path; - } - /** * Obtains a real identifier for the user * From 6d4e41ccb86b435567c82a14fcc7c25bede7dfc4 Mon Sep 17 00:00:00 2001 From: Dmitry Dulepov Date: Fri, 5 Oct 2018 14:10:10 +0300 Subject: [PATCH 8/9] [TASK] Set compatibility versions --- composer.json | 4 ++-- ext_emconf.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 7ab716d..cda5936 100644 --- a/composer.json +++ b/composer.json @@ -21,8 +21,8 @@ "ext-gmp": "*", "ext-curl": "*", "ext-dom": "*", - "typo3/cms-core": "~9.5", - "typo3/cms-setup": "~9.5" + "typo3/cms-core": "8.7.19-9.5.999", + "typo3/cms-setup": "8.7.19-9.5.999" }, "replace": { "openid": "self.version", diff --git a/ext_emconf.php b/ext_emconf.php index cabfe94..ea79186 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -11,8 +11,8 @@ 'version' => '9.5.0', 'constraints' => [ 'depends' => [ - 'typo3' => '9.5.0-9.5.999', - 'setup' => '9.5.0-9.1.999', + 'typo3' => '8.7.19-9.5.999', + 'setup' => '8.7.19-9.5.999', ], 'conflicts' => [ 'naw_openid' => '', From a9b165d5662e943ea49d90452703d843adfd72bc Mon Sep 17 00:00:00 2001 From: Dmitry Dulepov Date: Fri, 5 Oct 2018 14:23:18 +0300 Subject: [PATCH 9/9] [TASK] Fix dependency versions --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index cda5936..85a424a 100644 --- a/composer.json +++ b/composer.json @@ -21,8 +21,8 @@ "ext-gmp": "*", "ext-curl": "*", "ext-dom": "*", - "typo3/cms-core": "8.7.19-9.5.999", - "typo3/cms-setup": "8.7.19-9.5.999" + "typo3/cms-core": ">=8.7.19,<=9.5.999", + "typo3/cms-setup": ">=8.7.19,<=9.5.999" }, "replace": { "openid": "self.version",