63 $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\
TYPO3\CMS\
Extbase\Object\ObjectManager::class);
64 $this->repositoryRepository = $this->objectManager->get(\
TYPO3\CMS\Extensionmanager\Domain\Repository\RepositoryRepository::class);
65 $this->listUtility = $this->objectManager->get(\
TYPO3\CMS\Extensionmanager\Utility\ListUtility::class);
66 $this->languageService = $this->objectManager->get(\
TYPO3\CMS\Core\Localization\LanguageService::class);
67 $this->languageService->includeLLFile(
'EXT:extensionmanager/Resources/Private/Language/locallang.xlf');
81 $status[
'extensionsSecurityStatusInstalled'] = $extensionStatus->loaded ?? [];
82 $status[
'extensionsSecurityStatusNotInstalled'] = $extensionStatus->existing ?? [];
83 $status[
'extensionsOutdatedStatusInstalled'] = $extensionStatus->loadedoutdated ?? [];
84 $status[
'extensionsOutdatedStatusNotInstalled'] = $extensionStatus->existingoutdated ?? [];
97 $mainRepository = $this->repositoryRepository->findOneTypo3OrgRepository();
99 if ($mainRepository ===
null) {
100 $value = $this->languageService->getLL(
'report.status.mainRepository.notFound.value');
101 $message = $this->languageService->getLL(
'report.status.mainRepository.notFound.message');
103 } elseif ($mainRepository->getLastUpdate()->getTimestamp() <
$GLOBALS[
'EXEC_TIME'] - 24 * 60 * 60 * 7) {
104 $value = $this->languageService->getLL(
'report.status.mainRepository.notUpToDate.value');
105 $message = $this->languageService->getLL(
'report.status.mainRepository.notUpToDate.message');
108 $value = $this->languageService->getLL(
'report.status.mainRepository.upToDate.value');
114 $status = $this->objectManager->get(
115 \
TYPO3\CMS\Reports\Status::class,
116 $this->languageService->getLL(
'report.status.mainRepository.title'),
132 $extensionInformation = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
133 $loadedInsecure = [];
134 $existingInsecure = [];
135 $loadedOutdated = [];
136 $existingOutdated = [];
137 foreach ($extensionInformation as $extensionKey => $information) {
139 array_key_exists(
'terObject', $information)
140 && $information[
'terObject'] instanceof \
TYPO3\CMS\Extensionmanager\Domain\Model\Extension
143 $terObject = $information[
'terObject'];
144 $insecureStatus = $terObject->getReviewState();
145 if ($insecureStatus === -1) {
147 array_key_exists(
'installed', $information)
148 && $information[
'installed'] ===
true
150 $loadedInsecure[] = [
151 'extensionKey' => $extensionKey,
152 'version' => $terObject->getVersion(),
155 $existingInsecure[] = [
156 'extensionKey' => $extensionKey,
157 'version' => $terObject->getVersion(),
160 } elseif ($insecureStatus === -2) {
162 array_key_exists(
'installed', $information)
163 && $information[
'installed'] ===
true
165 $loadedOutdated[] = [
166 'extensionKey' => $extensionKey,
167 'version' => $terObject->getVersion(),
170 $existingOutdated[] = [
171 'extensionKey' => $extensionKey,
172 'version' => $terObject->getVersion(),
179 $result = new \stdClass();
181 if (empty($loadedInsecure)) {
182 $value = $this->languageService->getLL(
'report.status.loadedExtensions.noInsecureExtensionLoaded.value');
187 $this->languageService->getLL(
'report.status.loadedExtensions.insecureExtensionLoaded.value'),
188 count($loadedInsecure)
191 foreach ($loadedInsecure as $insecureExtension) {
192 $extensionList[] = sprintf(
193 $this->languageService->getLL(
'report.status.loadedExtensions.insecureExtensionLoaded.message.extension'),
194 $insecureExtension[
'extensionKey'],
195 $insecureExtension[
'version']
199 $this->languageService->getLL(
'report.status.loadedExtensions.insecureExtensionLoaded.message'),
200 implode(
'', $extensionList)
204 $result->loaded = $this->objectManager->get(
205 \
TYPO3\CMS\Reports\Status::class,
206 $this->languageService->getLL(
'report.status.loadedExtensions.title'),
212 if (empty($existingInsecure)) {
213 $value = $this->languageService->getLL(
'report.status.existingExtensions.noInsecureExtensionExists.value');
218 $this->languageService->getLL(
'report.status.existingExtensions.insecureExtensionExists.value'),
219 count($existingInsecure)
222 foreach ($existingInsecure as $insecureExtension) {
223 $extensionList[] = sprintf(
224 $this->languageService->getLL(
'report.status.existingExtensions.insecureExtensionExists.message.extension'),
225 $insecureExtension[
'extensionKey'],
226 $insecureExtension[
'version']
230 $this->languageService->getLL(
'report.status.existingExtensions.insecureExtensionExists.message'),
231 implode(
'', $extensionList)
235 $result->existing = $this->objectManager->get(
236 \
TYPO3\CMS\Reports\Status::class,
237 $this->languageService->getLL(
'report.status.existingExtensions.title'),
243 if (empty($loadedOutdated)) {
244 $value = $this->languageService->getLL(
'report.status.loadedOutdatedExtensions.noOutdatedExtensionLoaded.value');
249 $this->languageService->getLL(
'report.status.loadedOutdatedExtensions.outdatedExtensionLoaded.value'),
250 count($loadedOutdated)
253 foreach ($loadedOutdated as $outdatedExtension) {
254 $extensionList[] = sprintf(
255 $this->languageService->getLL(
'report.status.loadedOutdatedExtensions.outdatedExtensionLoaded.message.extension'),
256 $outdatedExtension[
'extensionKey'],
257 $outdatedExtension[
'version']
261 $this->languageService->getLL(
'report.status.loadedOutdatedExtensions.outdatedExtensionLoaded.message'),
262 implode(
'', $extensionList)
266 $result->loadedoutdated = $this->objectManager->get(
267 \
TYPO3\CMS\Reports\Status::class,
268 $this->languageService->getLL(
'report.status.loadedOutdatedExtensions.title'),
274 if (empty($existingOutdated)) {
275 $value = $this->languageService->getLL(
'report.status.existingOutdatedExtensions.noOutdatedExtensionExists.value');
280 $this->languageService->getLL(
'report.status.existingOutdatedExtensions.outdatedExtensionExists.value'),
281 count($existingOutdated)
284 foreach ($existingOutdated as $outdatedExtension) {
285 $extensionList[] = sprintf(
286 $this->languageService->getLL(
'report.status.existingOutdatedExtensions.outdatedExtensionExists.message.extension'),
287 $outdatedExtension[
'extensionKey'],
288 $outdatedExtension[
'version']
292 $this->languageService->getLL(
'report.status.existingOutdatedExtensions.outdatedExtensionExists.message'),
293 implode(
'', $extensionList)
297 $result->existingoutdated = $this->objectManager->get(
298 \
TYPO3\CMS\Reports\Status::class,
299 $this->languageService->getLL(
'report.status.existingOutdatedExtensions.title'),