Beispiel #1
0
 /**
  * Get the cache key string for the merge action.
  *
  * @param int $rule_group_id
  * @param int $group_id
  * @param array $criteria
  *   Additional criteria to narrow down the merge group.
  *   Currently we are only supporting the key 'contact' within it.
  *
  * @param bool $checkPermissions
  *   Respect the users permissions.
  *
  * @return string
  */
 public static function getMergeCacheKeyString($rule_group_id, $group_id, $criteria = array(), $checkPermissions = TRUE)
 {
     $contactType = CRM_Dedupe_BAO_RuleGroup::getContactTypeForRuleGroup($rule_group_id);
     $cacheKeyString = "merge {$contactType}";
     $cacheKeyString .= $rule_group_id ? "_{$rule_group_id}" : '_0';
     $cacheKeyString .= $group_id ? "_{$group_id}" : '_0';
     $cacheKeyString .= !empty($criteria) ? serialize($criteria) : '_0';
     if ($checkPermissions) {
         $contactID = CRM_Core_Session::getLoggedInContactID();
         if (!$contactID) {
             // Distinguish between no permission check & no logged in user.
             $contactID = 'null';
         }
         $cacheKeyString .= '_' . $contactID;
     } else {
         $cacheKeyString .= '_0';
     }
     return $cacheKeyString;
 }