UFMatch fixes and improvements
Here are a couple of UFMatch improvements:
Commit e0e20f1e fixes a situation where there are other callbacks for civicrm_post
that need full UFMatch data in order to function. The current code causes contact_id
, uf_id
and domain_id
to be missing in the callback data. Furthermore, domain_id
must be passed to the API calls otherwise there will be errors of the form Duplicate entry 'foo@bar.com-2' for key 'UI_uf_name_domain_id'
.
Commit e0e20f1e fixes situations such as demonstrated by the following snippet:
// First UFMatch API update.
$result = civicrm_api3('UFMatch', 'create', [
'uf_id' => 2,
'uf_name' => "foo@bar.com",
'contact_id' => 205,
'domain_id' => 1,
]);
// Second UFMatch API update.
$result = civicrm_api3('UFMatch', 'create', [
'uf_id' => 5,
'uf_name' => "bar@foo.com",
'contact_id' => 210,
'domain_id' => 1,
]);
Currently, the UFMatch updates in multisite_civicrm_post()
will only run once (for Contact ID 205) but not for the subsequent UFMatch update for Contact ID 210. e0e20f1e is not a complete fix (e.g. it will skip another UFMatch update for a Contact ID that has already been processed) but it's a step in the right direction.