dev/core#1858 Ensure that no duplicate contact is created by if we have the contactID...
authorSeamus Lee <seamuslee001@gmail.com>
Wed, 8 Jul 2020 06:27:45 +0000 (16:27 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Sun, 12 Jul 2020 23:02:45 +0000 (09:02 +1000)
Add in a code comment describing the issue

CRM/Core/BAO/UFMatch.php

index b7dd9b2c80187275e9022d123fe3c6f4d9038b07..b64db8636a19f541ef7f0bfdaba8965250cc035c 100644 (file)
@@ -191,6 +191,12 @@ class CRM_Core_BAO_UFMatch extends CRM_Core_DAO_UFMatch {
       if (!empty($_POST) && !$isLogin) {
         $params = $_POST;
         $params['email'] = $uniqId;
+        // dev/core#1858 Ensure that if we have a contactID parameter which is set in the Create user Record contact task form
+        // That this contacID value is passed through as the contact_id to the get duplicate contacts function. This is necessary because for Drupal 8 this function gets invoked
+        // Before the civicrm_uf_match record is added where as in D7 it isn't called until the user tries to actually login.
+        if (!empty($params['contactID'])) {
+          $params['contact_id'] = $params['contactID'];
+        }
 
         $ids = CRM_Contact_BAO_Contact::getDuplicateContacts($params, 'Individual', 'Unsupervised', [], FALSE);