From 36b4e32fda22216b6ee76abc7e773e775b859f86 Mon Sep 17 00:00:00 2001
From: Benjamin Franzke <bfr@qbus.de>
Date: Sat, 18 Apr 2020 15:42:29 +0200
Subject: [PATCH] [BUGIX] Register MetaDataRepository via service provider

The installtool sends a mail when a login happens when
TYPO3_CONF_VARS.BE.warning_email_addr is set.
When TYPO3_CONF_VARS.EXTENSIONS.backend.loginLogo is set
to provide a custom backend logo, that logo is used by
the FluidEmail template via f:image viewhelper.

Therefore we need to provide MetaDataRepository,
as the f:image viewhelper will use that service.
The (implicit) dependency chain is:

  <f:image>
    -> Resource\File
      -> MetaDataAspect
        -> MetaDataRepository

Releases: master
Resolves: #91107
Related: #89892
Change-Id: If4e73d607d2a6e21646ea91bd8f0a39742f133d4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64236
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Jonas Eberle <flightvision@googlemail.com>
Tested-by: Alexander Schnitzler <git@alexanderschnitzler.de>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Alexander Schnitzler <git@alexanderschnitzler.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
---
 typo3/sysext/core/Classes/ServiceProvider.php | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/typo3/sysext/core/Classes/ServiceProvider.php b/typo3/sysext/core/Classes/ServiceProvider.php
index b38da10e6d0c..3cdb5e0e0f49 100644
--- a/typo3/sysext/core/Classes/ServiceProvider.php
+++ b/typo3/sysext/core/Classes/ServiceProvider.php
@@ -58,6 +58,7 @@ class ServiceProvider extends AbstractServiceProvider
             Package\FailsafePackageManager::class => [ static::class, 'getFailsafePackageManager' ],
             Registry::class => [ static::class, 'getRegistry' ],
             Resource\Index\FileIndexRepository::class => [ static::class, 'getFileIndexRepository' ],
+            Resource\Index\MetaDataRepository::class => [ static::class, 'getMetaDataRepository' ],
             Resource\Driver\DriverRegistry::class => [ static::class, 'getDriverRegistry' ],
             Resource\ProcessedFileRepository::class => [ static::class, 'getProcessedFileRepository' ],
             Resource\ResourceFactory::class => [ static::class, 'getResourceFactory' ],
@@ -231,6 +232,13 @@ class ServiceProvider extends AbstractServiceProvider
         ]);
     }
 
+    public static function getMetaDataRepository(ContainerInterface $container): Resource\Index\MetaDataRepository
+    {
+        return self::new($container, Resource\Index\MetaDataRepository::class, [
+            $container->get(EventDispatcherInterface::class)
+        ]);
+    }
+
     public static function getDriverRegistry(ContainerInterface $container): Resource\Driver\DriverRegistry
     {
         return self::new($container, Resource\Driver\DriverRegistry::class);
-- 
GitLab