Merge pull request #22355 from colemanw/searchKitAddJoins
[civicrm-core.git] / CRM / ACL / BAO / Cache.php
index c7c630b9c37461d3266289468d1ab366cb4cc620..eac03d8b101fccb86b03b316d788eb2d26828210 100644 (file)
@@ -153,12 +153,28 @@ WHERE  modified_date IS NULL
       ],
     ];
     CRM_Core_DAO::singleValueQuery($query, $params);
+    self::flushACLContactCache();
+  }
 
+  /**
+   * Remove Entries from `civicrm_acl_contact_cache` for a specific ACLed user
+   * @param int $userID - contact_id of the ACLed user
+   *
+   */
+  public static function deleteContactCacheEntry($userID) {
+    CRM_Core_DAO::executeQuery("DELETE FROM civicrm_acl_contact_cache WHERE user_id = %1", [1 => [$userID, 'Positive']]);
+  }
+
+  /**
+   * Flush the contents of the acl contact cache.
+   */
+  protected static function flushACLContactCache(): void {
+    unset(Civi::$statics['CRM_ACL_API']);
     // CRM_Core_DAO::singleValueQuery("TRUNCATE TABLE civicrm_acl_contact_cache"); // No, force-commits transaction
     // CRM_Core_DAO::singleValueQuery("DELETE FROM civicrm_acl_contact_cache"); // Transaction-safe
     if (CRM_Core_Transaction::isActive()) {
       CRM_Core_Transaction::addCallback(CRM_Core_Transaction::PHASE_POST_COMMIT, function () {
-        CRM_Core_DAO::singleValueQuery("TRUNCATE TABLE civicrm_acl_contact_cache");
+        CRM_Core_DAO::singleValueQuery('TRUNCATE TABLE civicrm_acl_contact_cache');
       });
     }
     else {
@@ -166,13 +182,4 @@ WHERE  modified_date IS NULL
     }
   }
 
-  /**
-   * Remove Entries from `civicrm_acl_contact_cache` for a specific ACLed user
-   * @param int $userID - contact_id of the ACLed user
-   *
-   */
-  public static function deleteContactCacheEntry($userID) {
-    CRM_Core_DAO::executeQuery("DELETE FROM civicrm_acl_contact_cache WHERE user_id = %1", [1 => [$userID, 'Positive']]);
-  }
-
 }