X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUtils%2FHook.php;h=00b0bb7354684433a77862a53e181935db9f10d8;hb=1e1ed556e29f820a3834d8b1d45e979bca8c720f;hp=30deaad3eb00f342449df52b31fde0fa9af4e870;hpb=68b4ca5f964e83cc88d9ba4d3d5af338934de0ec;p=civicrm-core.git diff --git a/CRM/Utils/Hook.php b/CRM/Utils/Hook.php index 30deaad3eb..00b0bb7354 100644 --- a/CRM/Utils/Hook.php +++ b/CRM/Utils/Hook.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 4.7 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2016 | + | Copyright CiviCRM LLC (c) 2004-2017 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -28,7 +28,7 @@ /** * * @package CiviCRM_Hook - * @copyright CiviCRM LLC (c) 2004-2016 + * @copyright CiviCRM LLC (c) 2004-2017 */ abstract class CRM_Utils_Hook { @@ -89,6 +89,9 @@ abstract class CRM_Utils_Hook { return self::$_singleton; } + /** + * CRM_Utils_Hook constructor. + */ public function __construct() { $this->cache = CRM_Utils_Cache::create(array( 'name' => 'hooks', @@ -1746,6 +1749,25 @@ abstract class CRM_Utils_Hook { ); } + /** + * This hook is called when checking permissions; use this hook to dynamically + * escalate user permissions in certain use cases (cf. CRM-19256). + * + * @param string $permission + * The name of an atomic permission, ie. 'access deleted contacts' + * @param bool $granted + * Whether this permission is currently granted. The hook can change this value. + * + * @return null + * The return value is ignored + */ + public static function permission_check($permission, &$granted) { + return self::singleton()->invoke(2, $permission, $granted, + self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, + 'civicrm_permission_check' + ); + } + /** * @param CRM_Core_Exception Exception $exception * @param mixed $request @@ -2196,8 +2218,11 @@ abstract class CRM_Utils_Hook { } /** - * This hook is called for bypass a few civicrm urls from IDS check - * @param array $skip list of civicrm url; + * This hook is called for bypass a few civicrm urls from IDS check. + * + * @param array $skip list of civicrm urls + * + * @return mixed */ public static function idsException(&$skip) { return self::singleton()->invoke(1, $skip, self::$_nullObject, @@ -2212,6 +2237,8 @@ abstract class CRM_Utils_Hook { * @param string $geoProvider * @param array $values * @param SimpleXMLElement $xml + * + * @return mixed */ public static function geocoderFormat($geoProvider, &$values, $xml) { return self::singleton()->invoke(3, $geoProvider, $values, $xml,