Merge pull request #23889 from nextcloud/fix/noid/shortcut-to-avoid-filesystem-setup

Shortcut to avoid file system setup when generating the logo URL
This commit is contained in:
Morris Jobke 2020-11-09 14:11:15 +01:00 committed by GitHub
commit 5076a019e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 11 deletions

View File

@ -225,11 +225,20 @@ class ThemingDefaults extends \OC_Defaults {
public function getLogo($useSvg = true): string {
$logo = $this->config->getAppValue('theming', 'logoMime', false);
$logoExists = true;
try {
$this->imageManager->getImage('logo', $useSvg);
} catch (\Exception $e) {
$logoExists = false;
// short cut to avoid setting up the filesystem just to check if the logo is there
//
// explanation: if an SVG is requested and the app config value for logoMime is set then the logo is there.
// otherwise we need to check it and maybe also generate a PNG from the SVG (that's done in getImage() which
// needs to be called then)
if ($useSvg === true && $logo !== false) {
$logoExists = true;
} else {
try {
$this->imageManager->getImage('logo', $useSvg);
$logoExists = true;
} catch (\Exception $e) {
$logoExists = false;
}
}
$cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0');

View File

@ -40,7 +40,6 @@ use OCA\Theming\Util;
use OCP\App\IAppManager;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
use OCP\ICache;
use OCP\ICacheFactory;
use OCP\IConfig;
@ -617,11 +616,6 @@ class ThemingDefaultsTest extends TestCase {
}
public function testGetLogoCustom() {
$file = $this->createMock(ISimpleFile::class);
$this->imageManager->expects($this->once())
->method('getImage')
->with('logo')
->willReturn($file);
$this->config
->expects($this->at(0))
->method('getAppValue')