From 3c6253f9659d6fb5c059cfb6916654a5c2a7c52e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= Date: Tue, 10 May 2022 16:54:58 +0200 Subject: Remove old legacy SvgController and IconsCacher MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ --- core/Controller/SvgController.php | 151 -------------------------------------- core/routes.php | 2 - 2 files changed, 153 deletions(-) delete mode 100644 core/Controller/SvgController.php (limited to 'core') diff --git a/core/Controller/SvgController.php b/core/Controller/SvgController.php deleted file mode 100644 index 17f16dd48e6..00000000000 --- a/core/Controller/SvgController.php +++ /dev/null @@ -1,151 +0,0 @@ - - * @author Daniel Kesselberg - * @author Joas Schilling - * @author John Molakvoæ - * @author Julius Härtl - * @author Roeland Jago Douma - * @author Thomas Citharel - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OC\Core\Controller; - -use OC\Files\Filesystem; -use OC\Template\IconsCacher; -use OCP\App\AppPathNotFoundException; -use OCP\App\IAppManager; -use OCP\AppFramework\Controller; -use OCP\AppFramework\Http; -use OCP\AppFramework\Http\DataDisplayResponse; -use OCP\AppFramework\Http\NotFoundResponse; -use OCP\AppFramework\Utility\ITimeFactory; -use OCP\IRequest; - -class SvgController extends Controller { - - /** @var string */ - protected $serverRoot; - - /** @var ITimeFactory */ - protected $timeFactory; - - /** @var IAppManager */ - protected $appManager; - - /** @var IconsCacher */ - private $iconsCacher; - - public function __construct(string $appName, - IRequest $request, - ITimeFactory $timeFactory, - IAppManager $appManager, - IconsCacher $iconsCacher) { - parent::__construct($appName, $request); - - $this->serverRoot = \OC::$SERVERROOT; - $this->timeFactory = $timeFactory; - $this->appManager = $appManager; - $this->iconsCacher = $iconsCacher; - } - - /** - * @PublicPage - * @NoCSRFRequired - * @NoSameSiteCookieRequired - * - * Generate svg from filename with the requested color - * - * @param string $folder - * @param string $fileName - * @param string $color - * @return DataDisplayResponse|NotFoundResponse - */ - public function getSvgFromCore(string $folder, string $fileName, string $color = 'ffffff') { - $path = $this->serverRoot . "/core/img/$folder/$fileName.svg"; - return $this->getSvg($path, $color, $fileName); - } - - /** - * @PublicPage - * @NoCSRFRequired - * @NoSameSiteCookieRequired - * - * Generate svg from filename with the requested color - * - * @param string $app - * @param string $fileName - * @param string $color - * @return DataDisplayResponse|NotFoundResponse - */ - public function getSvgFromApp(string $app, string $fileName, string $color = 'ffffff') { - try { - $appPath = $this->appManager->getAppPath($app); - } catch (AppPathNotFoundException $e) { - return new NotFoundResponse(); - } - - $path = $appPath . "/img/$fileName.svg"; - return $this->getSvg($path, $color, $fileName); - } - - /** - * Generate svg from filename with the requested color - * - * @param string $path - * @param string $color - * @param string $fileName - * @return DataDisplayResponse|NotFoundResponse - */ - private function getSvg(string $path, string $color, string $fileName) { - if (!Filesystem::isValidPath($path)) { - return new NotFoundResponse(); - } - - if (!file_exists($path)) { - return new NotFoundResponse(); - } - - $svg = file_get_contents($path); - - if ($svg === null) { - return new NotFoundResponse(); - } - - $svg = $this->iconsCacher->colorizeSvg($svg, $color); - - $response = new DataDisplayResponse($svg, Http::STATUS_OK, ['Content-Type' => 'image/svg+xml']); - - // Set cache control - $ttl = 31536000; - $response->cacheFor($ttl); - $response->addHeader('Content-Disposition', 'inline; filename="' . $fileName . '.svg"'); - $expires = new \DateTime(); - $expires->setTimestamp($this->timeFactory->getTime()); - $expires->add(new \DateInterval('PT' . $ttl . 'S')); - $response->addHeader('Expires', $expires->format(\DateTime::RFC1123)); - $response->addHeader('Pragma', 'cache'); - - return $response; - } -} diff --git a/core/routes.php b/core/routes.php index c3bbb7337ba..bfc614935e1 100644 --- a/core/routes.php +++ b/core/routes.php @@ -79,8 +79,6 @@ $application->registerRoutes($this, [ ['name' => 'Preview#getPreviewByFileId', 'url' => '/core/preview', 'verb' => 'GET'], ['name' => 'Preview#getPreview', 'url' => '/core/preview.png', 'verb' => 'GET'], ['name' => 'RecommendedApps#index', 'url' => '/core/apps/recommended', 'verb' => 'GET'], - ['name' => 'Svg#getSvgFromCore', 'url' => '/svg/core/{folder}/{fileName}', 'verb' => 'GET'], - ['name' => 'Svg#getSvgFromApp', 'url' => '/svg/{app}/{fileName}', 'verb' => 'GET'], ['name' => 'Css#getCss', 'url' => '/css/{appName}/{fileName}', 'verb' => 'GET'], ['name' => 'Js#getJs', 'url' => '/js/{appName}/{fileName}', 'verb' => 'GET'], ['name' => 'contactsMenu#index', 'url' => '/contactsmenu/contacts', 'verb' => 'POST'], -- cgit v1.2.3