From 8f82262af2edcb7ac19f651179b51da02974224f Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 4 Jan 2024 14:02:26 +1300 Subject: [PATCH] Add system check to warn if CiviReport disabled & logging enabled --- CRM/Utils/Check/Component/Env.php | 32 +++++++++++++++++-- .../CRM/Utils/Check/Component/EnvTest.php | 2 +- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/CRM/Utils/Check/Component/Env.php b/CRM/Utils/Check/Component/Env.php index d37a0ce6cb..72427d69f9 100644 --- a/CRM/Utils/Check/Component/Env.php +++ b/CRM/Utils/Check/Component/Env.php @@ -9,6 +9,9 @@ +--------------------------------------------------------------------+ */ +use Civi\Api4\Extension; +use Psr\Log\LogLevel; + /** * * @package CRM @@ -200,7 +203,7 @@ class CRM_Utils_Check_Component_Env extends CRM_Utils_Check_Component { return $messages; } - list($domainEmailName, $domainEmailAddress) = CRM_Core_BAO_Domain::getNameAndEmail(TRUE); + [$domainEmailName, $domainEmailAddress] = CRM_Core_BAO_Domain::getNameAndEmail(TRUE); $domain = CRM_Core_BAO_Domain::getDomain(); $domainName = $domain->name; $fixEmailUrl = CRM_Utils_System::url("civicrm/admin/options/from_email_address", "&reset=1"); @@ -766,7 +769,7 @@ class CRM_Utils_Check_Component_Env extends CRM_Utils_Check_Component { $messages = []; $setting = Civi::settings()->get('enable_components'); - $exts = \Civi\Api4\Extension::get(FALSE) + $exts = Extension::get(FALSE) ->addWhere('key', 'LIKE', 'civi_%') ->addWhere('status', '=', 'installed') ->execute() @@ -859,6 +862,31 @@ class CRM_Utils_Check_Component_Env extends CRM_Utils_Check_Component { return []; } + /** + * Checks if logging is enabled but Civi-report is not. + * + * @return CRM_Utils_Check_Message[] + * @throws \CRM_Core_Exception + */ + public function checkLoggingHasCiviReport(): array { + if (Civi::settings()->get('logging')) { + $isEnabledCiviReport = (bool) Extension::get(FALSE) + ->addWhere('key', '=', 'civi_report') + ->addWhere('status', '=', 'installed') + ->execute()->countFetched(); + return $isEnabledCiviReport ? [] : [ + new CRM_Utils_Check_Message( + __FUNCTION__, + ts('You have enabled detailed logging but to display this in the change log tab CiviReport must be enabled'), + ts('CiviReport required to display detailed logging.'), + LogLevel::WARNING, + 'fa-plug' + ), + ]; + } + return []; + } + /** * Checks if CiviCRM database version is up-to-date * @return CRM_Utils_Check_Message[] diff --git a/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php b/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php index 45efbd8776..ff32ff323a 100644 --- a/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php +++ b/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php @@ -18,7 +18,7 @@ class CRM_Utils_Check_Component_EnvTest extends CiviUnitTestCase { * @throws \GuzzleHttp\Exception\GuzzleException */ public function testResourceUrlCheck(): void { - $check = new \CRM_Utils_Check_Component_Env(); + $check = new CRM_Utils_Check_Component_Env(); $failRequest = $check->fileExists('https://civicrm.org', 0.001); $successRequest = $check->fileExists('https://civicrm.org', 0); -- 2.25.1