From: Tim Mallezie Date: Tue, 14 Apr 2015 14:53:01 +0000 (+0200) Subject: remove duplicate check when id is specified X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=609d8c321acc00a7b73c144bbcd75f14565a2e5a;p=civicrm-core.git remove duplicate check when id is specified --- diff --git a/CRM/Contact/BAO/Relationship.php b/CRM/Contact/BAO/Relationship.php index 93ed52260d..b3b87e6cb5 100644 --- a/CRM/Contact/BAO/Relationship.php +++ b/CRM/Contact/BAO/Relationship.php @@ -51,10 +51,14 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { * @throws \CRM_Core_Exception */ public static function create(&$params) { - $params = self::loadExistingRelationshipDetails($params); - if (self::checkDuplicateRelationship($params, $params['contact_id_a'], $params['contact_id_b'], CRM_Utils_Array::value('id', $params, 0))) { + + $extended_params = self::loadExistingRelationshipDetails($params); + // When id is specified we always wan't to update, so we don't need to + // check for duplicate relations. + if (!isset($params['id']) && self::checkDuplicateRelationship($extended_params, $extended_params['contact_id_a'], $extended_params['contact_id_b'], CRM_Utils_Array::value('id', $extended_params, 0))) { throw new CRM_Core_Exception('Duplicate Relationship'); } + $params = $extended_params; if (self::checkValidRelationship($params, $params, 0)) { throw new CRM_Core_Exception('Invalid Relationship'); }