Skip to content

Commit b793584

Browse files
authored
Merge pull request #2 from LibreCodeCoop/feat/make-possible-use-multiple-image-types
feat: make possible use multiple types
2 parents 2c97721 + 78f8666 commit b793584

File tree

2 files changed

+12
-19
lines changed

2 files changed

+12
-19
lines changed

lib/Middleware/InjectionMiddleware.php

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
use OCP\AppFramework\Http\NotFoundResponse;
1717
use OCP\AppFramework\Http\Response;
1818
use OCP\AppFramework\Middleware;
19+
use OCP\Files\NotFoundException;
20+
use OCP\Files\SimpleFS\ISimpleFile;
1921
use OCP\IConfig;
2022
use OCP\IGroupManager;
2123
use OCP\IRequest;
@@ -61,25 +63,14 @@ private function getImageFromDomain(Response $response, string $type): Response
6163
return $response;
6264
}
6365

64-
if ($type === 'logo') {
65-
$file = $this->companyService->getThemeFile('core/img/logo.png');
66-
$mime = 'image/png';
67-
} elseif ($type === 'favicon') {
68-
$file = $this->companyService->getThemeFile('core/img/favicon.png');
69-
$mime = 'image/png';
70-
} elseif ($type === 'background') {
71-
$file = $this->companyService->getThemeFile('core/img/background.png');
72-
$mime = 'image/png';
73-
} else {
74-
return new NotFoundResponse();
75-
}
66+
$file = $this->companyService->getThemeFile('core/img/' . $type);
7667

7768
if ($response instanceof NotFoundResponse) {
7869
$response = new FileDisplayResponse($file);
7970
$csp = new ContentSecurityPolicy();
8071
$csp->allowInlineStyle();
8172
$response->cacheFor(3600);
82-
$response->addHeader('Content-Type', $mime);
73+
$response->addHeader('Content-Type', $file->getMimeType());
8374
$response->addHeader('Content-Disposition', 'attachment; filename="' . $type . '"');
8475
$response->setContentSecurityPolicy($csp);
8576
} else {

lib/Service/CompanyService.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -142,13 +142,15 @@ public function getCompanyCode(): string {
142142

143143
public function getThemeFile($name): ISimpleFile {
144144
$folder = $this->getThemeFolder($this->getCompanyCode());
145-
try {
146-
$file = $folder->getFile($name);
147-
} catch (NotFoundException $e) {
148-
$folder = $this->getThemeFolder('default');
149-
$file = $folder->getFile($name);
145+
foreach (['png', 'jpg', 'svg'] as $extension) {
146+
try {
147+
return $folder->getFile($name . '.' . $extension);
148+
} catch (NotFoundException $e) {
149+
continue;
150+
}
150151
}
151-
return $file;
152+
$folder = $this->getThemeFolder('default');
153+
return $folder->getFile($name);
152154
}
153155

154156
private function getThemeFolder(string $folderName): ISimpleFolder {

0 commit comments

Comments
 (0)