Merge pull request #21274 from mattwire/contributionviewid
[civicrm-core.git] / CRM / Utils / Hook.php
index 82877f3feb08f5afb0808d7e5cbc726c39e83acf..e4c7b71dcac3b01a65acffff4ff57dd459a6a70f 100644 (file)
@@ -2835,4 +2835,23 @@ abstract class CRM_Utils_Hook {
     );
   }
 
+  /**
+   * Allows an extension to override the checksum validation.
+   * For example you may want to invalidate checksums that were sent out/forwarded by mistake. You could also
+   * intercept and redirect to a different page in this case - eg. to say "sorry, you tried to use a compromised
+   * checksum".
+   *
+   * @param int $contactID
+   * @param string $checksum
+   * @param bool $invalid
+   *   Leave this at FALSE to allow the core code to perform validation. Set to TRUE to invalidate
+   */
+  public static function invalidateChecksum($contactID, $checksum, &$invalid) {
+    return self::singleton()->invoke(
+      ['contactID', 'checksum', 'invalid'],
+      $contactID, $checksum, $invalid, self::$_nullObject, self::$_nullObject,
+      self::$_nullObject, 'civicrm_invalidateChecksum'
+    );
+  }
+
 }