diff --git a/CRM/Core/BAO/Email.php b/CRM/Core/BAO/Email.php index bd99c13940c3c6209dbdf242de7ba674386f89e5..d2eeeaca4de9d14fc25fb67db573205cb19b6969 100644 --- a/CRM/Core/BAO/Email.php +++ b/CRM/Core/BAO/Email.php @@ -45,14 +45,20 @@ class CRM_Core_BAO_Email extends CRM_Core_DAO_Email { * @param array $params input parameters */ static function create($params) { - if (is_numeric(CRM_Utils_Array::value('is_primary', $params)) || - // if id is set & is_primary isn't we can assume no change - empty($params['id']) - ) { + // if id is set & is_primary isn't we can assume no change + $alterPrimary = is_numeric(CRM_Utils_Array::value('is_primary', $params)) || empty($params['id']); + + if ($alterPrimary) { CRM_Core_BAO_Block::handlePrimary($params, get_class()); } + $email = CRM_Core_BAO_Email::add($params); + if ($alterPrimary) { + // update the UF user email if that has changed + CRM_Core_BAO_UFMatch::updateUFName($email->contact_id); + } + return $email; }