From 609d8c321acc00a7b73c144bbcd75f14565a2e5a Mon Sep 17 00:00:00 2001 From: Tim Mallezie Date: Tue, 14 Apr 2015 16:53:01 +0200 Subject: [PATCH] remove duplicate check when id is specified --- CRM/Contact/BAO/Relationship.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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'); } -- 2.25.1