Details
-
Type: New Feature
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 3.2.3
-
Component/s: Core CiviCRM
-
Labels:None
Description
Include a row in the Merge screen to display "$cms User" (e.g. Drupal or Joomla User) info if one or both of the contacts is linked to a user record in uf_match table.
1. If contact has a user record, display username and user_id in the row with link to view user record if logged in user has permission to view users:
"Drupal User: adam foo; user id: 121"
2. Preprocess should determine whether 0, 1 or both contacts have associated user records - and set a status (warning) message above the user info display row for the "both" condition. Status message as follows:
"There are $ufFramework user accounts associated with both the original and duplicate contacts. If you continue with the merge, the user record associated with the duplicate contact will not be deleted, but will be un-linked from the associated contact record (which will be deleted). If that user logs in again, a new contact record will be created for them."
NOTE: We need to verify the behavior for the soft-delete of a contact associated with a drupal user (on merge, and when that user logs in again). The message above may need to be modified if soft-delete is enabled. However, I think the right behavior is that is_deleted contacts are ignored for user -> contact synch.
3. Post-process: If the user account was associated with the duplicate contact AND the 'move' checkbox is checked - then update the uf_match row replacing the dupe contact id with the "original" contact id. If both contacts have an entry in uf_match, then delete the uf_match row which references the duplicate contact.