From 6af075a7e7bfca5209da626b0f0ff5eb5f79e778 Mon Sep 17 00:00:00 2001 From: szaimen Date: Sat, 5 Mar 2022 20:26:16 +0100 Subject: [PATCH] allow to disable the imagick warning Signed-off-by: szaimen Co-Authored-By: MichaIng --- .../lib/Controller/CheckSetupController.php | 35 +++++++++++-------- core/js/setupchecks.js | 18 ++++++++++ 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/apps/settings/lib/Controller/CheckSetupController.php b/apps/settings/lib/Controller/CheckSetupController.php index 4b825c2622f..b9f176f97c5 100644 --- a/apps/settings/lib/Controller/CheckSetupController.php +++ b/apps/settings/lib/Controller/CheckSetupController.php @@ -713,20 +713,6 @@ Raw output $recommendedPHPModules[] = 'intl'; } - if (!extension_loaded('bcmath')) { - $recommendedPHPModules[] = 'bcmath'; - } - - if (!extension_loaded('gmp')) { - $recommendedPHPModules[] = 'gmp'; - } - - if ($this->config->getAppValue('theming', 'enabled', 'no') === 'yes') { - if (!extension_loaded('imagick')) { - $recommendedPHPModules[] = 'imagick'; - } - } - if (!defined('PASSWORD_ARGON2I') && PHP_VERSION_ID >= 70400) { // Installing php-sodium on >=php7.4 will provide PASSWORD_ARGON2I // on previous version argon2 wasn't part of the "standard" extension @@ -738,6 +724,25 @@ Raw output return $recommendedPHPModules; } + protected function isImagickEnabled(): bool { + if ($this->config->getAppValue('theming', 'enabled', 'no') === 'yes') { + if (!extension_loaded('imagick')) { + return false; + } + } + return true; + } + + protected function areWebauthnExtensionsEnabled(): bool { + if (!extension_loaded('bcmath')) { + return false; + } + if (!extension_loaded('gmp')) { + return false; + } + return true; + } + protected function isMysqlUsedWithoutUTF8MB4(): bool { return ($this->config->getSystemValue('dbtype', 'sqlite') === 'mysql') && ($this->config->getSystemValue('mysql.utf8mb4', false) === false); } @@ -869,6 +874,8 @@ Raw output 'databaseConversionDocumentation' => $this->urlGenerator->linkToDocs('admin-db-conversion'), 'isMemoryLimitSufficient' => $this->memoryInfo->isMemoryLimitSufficient(), 'appDirsWithDifferentOwner' => $this->getAppDirsWithDifferentOwner(), + 'isImagickEnabled' => $this->isImagickEnabled(), + 'areWebauthnExtensionsEnabled' => $this->areWebauthnExtensionsEnabled(), 'recommendedPHPModules' => $this->hasRecommendedPHPModules(), 'pendingBigIntConversionColumns' => $this->hasBigIntConversionPendingColumns(), 'isMysqlUsedWithoutUTF8MB4' => $this->isMysqlUsedWithoutUTF8MB4(), diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js index fa67528de5d..266f35a9552 100644 --- a/core/js/setupchecks.js +++ b/core/js/setupchecks.js @@ -423,6 +423,24 @@ type: OC.SetupChecks.MESSAGE_TYPE_INFO }) } + if (!data.isImagickEnabled) { + messages.push({ + msg: t( + 'core', + 'The PHP module "imagick" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module.' + ), + type: OC.SetupChecks.MESSAGE_TYPE_INFO + }) + } + if (!data.areWebauthnExtensionsEnabled) { + messages.push({ + msg: t( + 'core', + 'The PHP modules "gmp" and/or "bcmath" are not enabled. If you use WebAuthn passwordless authentication, these modules are required.' + ), + type: OC.SetupChecks.MESSAGE_TYPE_INFO + }) + } if (data.imageMagickLacksSVGSupport) { messages.push({ msg: t(