diff --git a/CRM/Core/BAO/OpenID.php b/CRM/Core/BAO/OpenID.php index 34326a7562578ccf60250ec4f8a3b18227ea7f1b..db14b57eec4279d16ec6b20e7b8042dda1881d96 100644 --- a/CRM/Core/BAO/OpenID.php +++ b/CRM/Core/BAO/OpenID.php @@ -24,9 +24,16 @@ class CRM_Core_BAO_OpenID extends CRM_Core_DAO_OpenID { * Create or update OpenID record. * * @param array $params + * * @return CRM_Core_DAO_OpenID + * + * @throws \API_Exception + * @throws \CRM_Core_Exception */ public static function add($params) { + if (empty($params['id']) || is_numeric($params['is_primary'] ?? NULL)) { + CRM_Core_BAO_Block::handlePrimary($params, __CLASS__); + } return self::writeRecord($params); } @@ -38,6 +45,7 @@ class CRM_Core_BAO_OpenID extends CRM_Core_DAO_OpenID { * Input parameters to find object. * * @return mixed + * @throws \CRM_Core_Exception */ public static function &getValues($entityBlock) { return CRM_Core_BAO_Block::getValues('openid', $entityBlock); diff --git a/tests/phpunit/api/v3/OpenIDTest.php b/tests/phpunit/api/v3/OpenIDTest.php index a3025e805bcc90304bf8b53f5d4acfe7edc0b6f9..5c554ab006d756feac8e4249f59074de764a91a7 100644 --- a/tests/phpunit/api/v3/OpenIDTest.php +++ b/tests/phpunit/api/v3/OpenIDTest.php @@ -18,6 +18,13 @@ */ class api_v3_OpenIDTest extends CiviUnitTestCase { + /** + * Should location types be checked to ensure primary addresses are correctly assigned after each test. + * + * @var bool + */ + protected $isLocationTypesOnPostAssert = TRUE; + protected $_params; protected $id; protected $_entity;