CRM-14499: Update FourFour upgrade script and changes image urls to improve security...
[civicrm-core.git] / CRM / Utils / Check.php
index 08b8d7af7c7de05811368fe239858705b488f0ad..288a78f0e9f02846a8008b9b8bb9d07f3b694d0f 100644 (file)
@@ -60,8 +60,10 @@ class CRM_Utils_Check {
 
   /**
    * Execute "checkAll"
+   *
+   * @param array|NULL $messages list of CRM_Utils_Check_Message; or NULL if the default list should be fetched
    */
-  public function showPeriodicAlerts() {
+  public function showPeriodicAlerts($messages = NULL) {
     if (CRM_Core_Permission::check('administer CiviCRM')
       && CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'securityAlert', NULL, TRUE)
     ) {
@@ -72,13 +74,34 @@ class CRM_Utils_Check {
         $config = CRM_Core_Config::singleton();
         $config->cleanup(0, FALSE);
 
-        foreach ($this->checkAll() as $message) {
+        if ($messages === NULL) {
+          $messages = $this->checkAll();
+        }
+        foreach ($messages as $message) {
           CRM_Core_Session::setStatus($message->getMessage(), $message->getTitle());
         }
       }
     }
   }
 
+  /**
+   * Throw an exception if any of the checks fail
+   *
+   * @param array|NULL $messages list of CRM_Utils_Check_Message; or NULL if the default list should be fetched
+   */
+  public function assertValid($messages = NULL) {
+    if ($messages === NULL) {
+      $messages = $this->checkAll();
+    }
+    if (!empty($messages)) {
+      $messagesAsArray = array();
+      foreach ($messages as $message) {
+        $messagesAsArray[] = $message->toArray();
+      }
+      throw new Exception('There are configuration problems with this installation: ' . print_r($messagesAsArray, TRUE));
+    }
+  }
+
   /**
    * Run some sanity checks.
    *