diff options
Diffstat (limited to 'apps/theming/lib/Controller/IconController.php')
-rw-r--r-- | apps/theming/lib/Controller/IconController.php | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/apps/theming/lib/Controller/IconController.php b/apps/theming/lib/Controller/IconController.php index 1b16293a7f3..53575a52e3a 100644 --- a/apps/theming/lib/Controller/IconController.php +++ b/apps/theming/lib/Controller/IconController.php @@ -31,6 +31,7 @@ use OC\IntegrityCheck\Helpers\FileAccessHelper; use OCA\Theming\IconBuilder; use OCA\Theming\ImageManager; use OCA\Theming\ThemingDefaults; +use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataDisplayResponse; @@ -49,24 +50,17 @@ class IconController extends Controller { private $imageManager; /** @var FileAccessHelper */ private $fileAccessHelper; + /** @var IAppManager */ + private $appManager; - /** - * IconController constructor. - * - * @param string $appName - * @param IRequest $request - * @param ThemingDefaults $themingDefaults - * @param IconBuilder $iconBuilder - * @param ImageManager $imageManager - * @param FileAccessHelper $fileAccessHelper - */ public function __construct( $appName, IRequest $request, ThemingDefaults $themingDefaults, IconBuilder $iconBuilder, ImageManager $imageManager, - FileAccessHelper $fileAccessHelper + FileAccessHelper $fileAccessHelper, + IAppManager $appManager ) { parent::__construct($appName, $request); @@ -74,6 +68,7 @@ class IconController extends Controller { $this->iconBuilder = $iconBuilder; $this->imageManager = $imageManager; $this->fileAccessHelper = $fileAccessHelper; + $this->appManager = $appManager; } /** @@ -86,6 +81,11 @@ class IconController extends Controller { * @throws \Exception */ public function getThemedIcon(string $app, string $image): Response { + if ($app !== 'core' && !$this->appManager->isEnabledForUser($app)) { + $app = 'core'; + $image = 'favicon.png'; + } + $color = $this->themingDefaults->getColorPrimary(); try { $iconFileName = $this->imageManager->getCachedImage('icon-' . $app . '-' . $color . str_replace('/', '_', $image)); @@ -112,6 +112,10 @@ class IconController extends Controller { * @throws \Exception */ public function getFavicon(string $app = 'core'): Response { + if ($app !== 'core' && !$this->appManager->isEnabledForUser($app)) { + $app = 'core'; + } + $response = null; $iconFile = null; try { @@ -151,6 +155,10 @@ class IconController extends Controller { * @throws \Exception */ public function getTouchIcon(string $app = 'core'): Response { + if ($app !== 'core' && !$this->appManager->isEnabledForUser($app)) { + $app = 'core'; + } + $response = null; try { $iconFile = $this->imageManager->getImage('favicon'); |