/** * update the uf_name in the user object * * @param int $contactId id of the contact to update * * @return void * @access public * @static */ static function updateUFName($contactId) { $config =& CRM_Core_Config::singleton(); if ($config->userFramework == 'Standalone') { $ufName = CRM_Contact_BAO_Contact::getPrimaryOpenId($contactId); } else { $ufName = CRM_Contact_BAO_Contact::getPrimaryEmail($contactId); } if (!$ufName) { return; } $ufmatch =& new CRM_Core_DAO_UFMatch(); $ufmatch->contact_id = $contactId; $ufmatch->domain_id = CRM_Core_Config::domainID(); if (!$ufmatch->find(true) || $ufmatch->uf_name == $ufName) { // if object does not exist or the OpenID has not changed return; } // save the updated ufmatch object $ufmatch->uf_name = $ufName; $ufmatch->save(); require_once 'CRM/Core/BAO/CMSUser.php'; CRM_Core_BAO_CMSUser::updateUFName($ufmatch->uf_id, $ufName); }
/** * update the uf_name in the user object * * @param int $contactId id of the contact to update * * @return void * @access public * @static */ static function updateUFName($contactId) { if (!$contactId) { return; } $config = CRM_Core_Config::singleton(); if ($config->userFramework == 'Standalone') { $ufName = CRM_Contact_BAO_Contact::getPrimaryOpenId($contactId); } else { $ufName = CRM_Contact_BAO_Contact::getPrimaryEmail($contactId); } if (!$ufName) { return; } $update = false; // 1.do check for contact Id. $ufmatch = new CRM_Core_DAO_UFMatch(); $ufmatch->contact_id = $contactId; $ufmatch->domain_id = CRM_Core_Config::domainID(); if (!$ufmatch->find(true)) { return; } if ($ufmatch->uf_name != $ufName) { $update = true; } // CRM-6928 // 2.do check for duplicate ufName. $ufDupeName = new CRM_Core_DAO_UFMatch(); $ufDupeName->uf_name = $ufName; $ufDupeName->domain_id = CRM_Core_Config::domainID(); if ($ufDupeName->find(true) && $ufDupeName->contact_id != $contactId) { $update = false; } if (!$update) { return; } // save the updated ufmatch object $ufmatch->uf_name = $ufName; $ufmatch->save(); require_once 'CRM/Core/BAO/CMSUser.php'; CRM_Core_BAO_CMSUser::updateUFName($ufmatch->uf_id, $ufName); }