Skip to content

Commit

Permalink
Merge pull request #21201 from colemanw/hookDeleteAcl
Browse files Browse the repository at this point in the history
[REF] dev/core#2757 Move acl delete logic to an event listener
  • Loading branch information
eileenmcnaughton authored Aug 22, 2021
2 parents e443072 + 42f0bf1 commit 33f8687
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
21 changes: 13 additions & 8 deletions CRM/ACL/BAO/ACL.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/**
* Access Control List
*/
class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL {
class CRM_ACL_BAO_ACL extends CRM_ACL_DAO_ACL implements \Civi\Test\HookInterface {

/**
* Available operations for pseudoconstant.
Expand Down Expand Up @@ -433,16 +433,21 @@ protected static function matchType($type, $operation) {
* Delete ACL records.
*
* @param int $aclId
* ID of the ACL record to be deleted.
*
* @deprecated
*/
public static function del($aclId) {
// delete all entries from the acl cache
CRM_ACL_BAO_Cache::resetCache();
self::deleteRecord(['id' => $aclId]);
}

$acl = new CRM_ACL_DAO_ACL();
$acl->id = $aclId;
$acl->delete();
/**
* Event fired before an action is taken on an ACL record.
* @param \Civi\Core\Event\PreEvent $event
*/
public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
// Reset cache when deleting an ACL record
if ($event->action === 'delete') {
CRM_ACL_BAO_Cache::resetCache();
}
}

/**
Expand Down
2 changes: 1 addition & 1 deletion Civi/Core/Event/EventScanner.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class EventScanner {
* @param string|null $self
* If the target $class is focused on a specific entity/form/etc, use the `$self` parameter to specify it.
* This will activate support for `self_{$event}` methods.
* Ex: if '$self' is 'Contact', then 'function self_hook_civicrm_pre()' maps to 'hook_civicrm_pre::Contact'.
* Ex: if '$self' is 'Contact', then 'function self_hook_civicrm_pre()' maps to 'on_hook_civicrm_pre::Contact'.
* @return array
* List of events/listeners. Format is compatible with 'getSubscribedEvents()'.
* Ex: ['some.event' => [['firstFunc'], ['secondFunc']]
Expand Down

0 comments on commit 33f8687

Please sign in to comment.