diff --git a/Classes/Domain/Model/Company.php b/Classes/Domain/Model/Company.php index 26f1ee78..37b0b09d 100644 --- a/Classes/Domain/Model/Company.php +++ b/Classes/Domain/Model/Company.php @@ -12,6 +12,7 @@ use In2code\Lux\Domain\Service\Image\CompanyImageService; use In2code\Lux\Domain\Service\SiteService; use In2code\Lux\Utility\BackendUtility; +use In2code\Lux\Utility\EnvironmentUtility; use In2code\Lux\Utility\StringUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; @@ -361,7 +362,7 @@ public function getImageUrl(): string */ public function canBeRead(): bool { - if (BackendUtility::isAdministrator()) { + if (EnvironmentUtility::isBackend() === false || BackendUtility::isAdministrator()) { return true; } $sites = GeneralUtility::makeInstance(SiteService::class)->getAllowedSites(); diff --git a/Classes/Domain/Model/Fingerprint.php b/Classes/Domain/Model/Fingerprint.php index cdc5740f..e99f4a00 100644 --- a/Classes/Domain/Model/Fingerprint.php +++ b/Classes/Domain/Model/Fingerprint.php @@ -6,6 +6,7 @@ use In2code\Lux\Domain\Service\SiteService; use In2code\Lux\Exception\FingerprintMustNotBeEmptyException; use In2code\Lux\Utility\BackendUtility; +use In2code\Lux\Utility\EnvironmentUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use WhichBrowser\Parser; @@ -168,7 +169,7 @@ public function getTypeString(): string */ public function canBeRead(): bool { - if (BackendUtility::isAdministrator() || $this->site === '') { + if (EnvironmentUtility::isBackend() === false || BackendUtility::isAdministrator() || $this->site === '') { return true; } $sites = GeneralUtility::makeInstance(SiteService::class)->getAllowedSites(); diff --git a/Classes/Domain/Model/Log.php b/Classes/Domain/Model/Log.php index c6091fdc..48c41fab 100644 --- a/Classes/Domain/Model/Log.php +++ b/Classes/Domain/Model/Log.php @@ -9,6 +9,7 @@ use In2code\Lux\Domain\Repository\UtmRepository; use In2code\Lux\Domain\Service\SiteService; use In2code\Lux\Utility\BackendUtility; +use In2code\Lux\Utility\EnvironmentUtility; use In2code\Luxenterprise\Domain\Model\AbTestingPage; use In2code\Luxenterprise\Domain\Repository\AbTestingPageRepository; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -211,7 +212,7 @@ public static function getIdentifiedStatus(): array */ public function canBeRead(): bool { - if (BackendUtility::isAdministrator() || $this->site === '') { + if (EnvironmentUtility::isBackend() === false || BackendUtility::isAdministrator() || $this->site === '') { return true; } $sites = GeneralUtility::makeInstance(SiteService::class)->getAllowedSites(); diff --git a/Classes/Domain/Model/Pagevisit.php b/Classes/Domain/Model/Pagevisit.php index 2e84cbff..576155a9 100644 --- a/Classes/Domain/Model/Pagevisit.php +++ b/Classes/Domain/Model/Pagevisit.php @@ -8,6 +8,7 @@ use In2code\Lux\Domain\Service\Referrer\Readable; use In2code\Lux\Domain\Service\SiteService; use In2code\Lux\Utility\BackendUtility; +use In2code\Lux\Utility\EnvironmentUtility; use In2code\Lux\Utility\FrontendUtility; use TYPO3\CMS\Core\Exception\SiteNotFoundException; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; @@ -203,7 +204,7 @@ public function getNewsvisit(): ?Newsvisit */ public function canBeRead(): bool { - if (BackendUtility::isAdministrator() || $this->site === '') { + if (EnvironmentUtility::isBackend() === false || BackendUtility::isAdministrator() || $this->site === '') { return true; } $sites = GeneralUtility::makeInstance(SiteService::class)->getAllowedSites(); diff --git a/Classes/Domain/Model/Visitor.php b/Classes/Domain/Model/Visitor.php index e578d130..941acca2 100644 --- a/Classes/Domain/Model/Visitor.php +++ b/Classes/Domain/Model/Visitor.php @@ -18,6 +18,7 @@ use In2code\Lux\Exception\ConfigurationException; use In2code\Lux\Utility\BackendUtility; use In2code\Lux\Utility\DatabaseUtility; +use In2code\Lux\Utility\EnvironmentUtility; use In2code\Lux\Utility\LocalizationUtility; use In2code\Lux\Utility\ObjectUtility; use In2code\Lux\Utility\StringUtility; @@ -1177,7 +1178,7 @@ public function getLongitude(): string */ public function canBeRead(): bool { - if (BackendUtility::isAdministrator()) { + if (EnvironmentUtility::isBackend() === false || BackendUtility::isAdministrator()) { return true; } $sites = GeneralUtility::makeInstance(SiteService::class)->getAllowedSites(); diff --git a/Classes/Domain/Service/PermissionTrait.php b/Classes/Domain/Service/PermissionTrait.php index 2b8d0b8c..4c3b8b3a 100644 --- a/Classes/Domain/Service/PermissionTrait.php +++ b/Classes/Domain/Service/PermissionTrait.php @@ -7,6 +7,7 @@ use In2code\Lux\Exception\ConfigurationException; use In2code\Lux\Utility\BackendUtility; use In2code\Lux\Utility\DatabaseUtility; +use In2code\Lux\Utility\EnvironmentUtility; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Type\Bitmask\Permission; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; @@ -65,7 +66,7 @@ protected function getIdentifierFromArrayOrObject($object, $key): int */ private function isAuthenticatedForRecord(int $identifier, string $table): bool { - if (BackendUtility::isAdministrator()) { + if (EnvironmentUtility::isBackend() === false || BackendUtility::isAdministrator()) { return true; } diff --git a/Classes/Utility/EnvironmentUtility.php b/Classes/Utility/EnvironmentUtility.php new file mode 100644 index 00000000..558cf1ca --- /dev/null +++ b/Classes/Utility/EnvironmentUtility.php @@ -0,0 +1,27 @@ +isFrontend(); + } + + /** + * @return bool + * @SuppressWarnings(PHPMD.Superglobals) + */ + public static function isBackend(): bool + { + return ApplicationType::fromRequest($GLOBALS['TYPO3_REQUEST'])->isBackend(); + } +} diff --git a/Classes/Utility/FrontendUtility.php b/Classes/Utility/FrontendUtility.php index 708aa336..2094a3e6 100644 --- a/Classes/Utility/FrontendUtility.php +++ b/Classes/Utility/FrontendUtility.php @@ -4,7 +4,6 @@ namespace In2code\Lux\Utility; use In2code\Lux\Domain\Service\SiteService; -use TYPO3\CMS\Core\Http\ApplicationType; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; @@ -56,15 +55,6 @@ public static function getPropertyFromLoggedInFrontendUser($propertyName = 'uid' return ''; } - /** - * @return bool - * @SuppressWarnings(PHPMD.Superglobals) - */ - public static function isFrontendMode(): bool - { - return ApplicationType::fromRequest($GLOBALS['TYPO3_REQUEST'])->isFrontend(); - } - /** * @return ?TypoScriptFrontendController * @SuppressWarnings(PHPMD.Superglobals) diff --git a/Documentation/Technical/Changelog/Index.md b/Documentation/Technical/Changelog/Index.md index f2f2d63b..07fe50b6 100644 --- a/Documentation/Technical/Changelog/Index.md +++ b/Documentation/Technical/Changelog/Index.md @@ -31,6 +31,7 @@ Double check if you have cleared all caches after installing a new LUX version t | Version | Date | State | TYPO3 | Description | |------------|------------|----------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 35.0.2 | 2024-04-17 | Bugfix | `11.5 + 12.4` | Fix scoring calculation in frontend requests | | 35.0.1 | 2024-04-11 | Bugfix | `11.5 + 12.4` | Prevent possible exception when opening A/B Testing module on an empty installation, update disallowed mail provider list | | 35.0.0 !!! | 2024-03-26 | Feature | `11.5 + 12.4` | Support multiclient usage now, small performance improvements, update social media resources, unify filters in backend modules | | 34.3.3 | 2024-03-04 | Bugfix | `11.5 + 12.4` | Harden curl requests against ip services to prevent exceptions | @@ -85,6 +86,7 @@ Double check if you have cleared all caches after installing a new LUX version t | 27.1.1 | 2023-02-17 | Bugfix | `11.5 + 12.4` | Fix "Property lastLogin must not be accessed before initialization" in FrontendUser model | | 27.1.0 | 2023-02-15 | Bugfix | `11.5 + 12.4` | Updated disallowed mail provider list, Fixed PHP 8.2 issue with package whichbrowser/parser, small code cleanup | | 27.0.0 !!! | 2023-02-12 | Task | `11.5 + 12.4` | Support TYPO3 11+12 and drop support for TYPO3 10. Add id to anonym names. Track referrer with UTM tracking. A/B testing with a cleanup function now. Make linklisteners selectable in backend again. | +| 26.8.0 | 2024-04-11 | Feature | `11.5 + 12.4` | Extend Lead CSV download with country, last visit and last download | | 26.7.0 | 2024-03-19 | Feature | `11.5 + 12.4` | Remove all domains from referrer diagram where referrers are from local instance | | 26.6.0 | 2024-03-18 | Feature | `11.5 + 12.4` | Add domain selection for Lead list, use imagegrabber fork to prevent problems while loading images from google search | | 26.5.2 | 2024-01-12 | Bugfix | `11.5 + 12.4` | Fix module links on some TYPO3 10 installations | diff --git a/Resources/Private/Templates/Lead/DownloadCsv.html b/Resources/Private/Templates/Lead/DownloadCsv.html index 2ee0b11a..cef1b0b1 100644 --- a/Resources/Private/Templates/Lead/DownloadCsv.html +++ b/Resources/Private/Templates/Lead/DownloadCsv.html @@ -1,5 +1,5 @@ - Lead Ident;Lead Scoring;Email;Company;Last Visit;Number of Visits - {visitor.fullName};{visitor.scoring};{visitor.email};{visitor.company};{f:format.date(date:visitor.dateOfLastVisit,format:'{f:translate(key:\'LLL:EXT:lux/Resources/Private/Language/locallang_db.xlf:date\')}')};{visitor.visits} + Lead Ident;Lead Scoring;Email;Company;Last Visit;Number of Visits;Country;Last visit;Last download + {visitor.fullName};{visitor.scoring};{visitor.email};{visitor.company};{f:format.date(date:visitor.dateOfLastVisit,format:'{f:translate(key:\'LLL:EXT:lux/Resources/Private/Language/locallang_db.xlf:date\')}')};{visitor.visits};{visitor.country};{visitor.pagevisitLast.crdate -> f:format.date(format:'Y-m-d')};{visitor.lastDownload.crdate -> f:format.date(format:'Y-m-d')} diff --git a/ext_emconf.php b/ext_emconf.php index 1f6a2dac..7c2b3a90 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -4,7 +4,7 @@ 'description' => 'Living User Experience - LUX - the Marketing Automation tool for TYPO3. Turn your visitors to leads. Identification and profiling of your visitors within your TYPO3 website.', 'category' => 'plugin', - 'version' => '35.0.1', + 'version' => '35.0.2', 'author' => 'Alex Kellner', 'author_email' => 'alexander.kellner@in2code.de', 'author_company' => 'in2code.de',