Skip to content
Snippets Groups Projects
Commit ed2f3757 authored by Eileen McNaughton's avatar Eileen McNaughton
Browse files

Extract ACL contact cache clearing part out

This allows us to be nuanced in the acl delete part & still clear the contact cache part
parent e443072a
Branches
Tags
No related merge requests found
......@@ -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']]);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment