From 52ed95a82017e7a62a78d587925504f0be8c597d Mon Sep 17 00:00:00 2001 From: eileen Date: Tue, 29 Aug 2017 20:21:15 +1200 Subject: [PATCH] CRM-20027 add test for locBlock permission issue --- tests/phpunit/api/v3/ACLPermissionTest.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/phpunit/api/v3/ACLPermissionTest.php b/tests/phpunit/api/v3/ACLPermissionTest.php index 5fdf7ac53b..8588d63dea 100644 --- a/tests/phpunit/api/v3/ACLPermissionTest.php +++ b/tests/phpunit/api/v3/ACLPermissionTest.php @@ -114,6 +114,23 @@ class api_v3_ACLPermissionTest extends CiviUnitTestCase { )); } + /** + * Ensure contact permissions do not block contact-less location entities. + */ + public function testAddressWithoutContactIDAccess() { + $ownID = $this->createLoggedInUser(); + CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM', 'view all contacts'); + $this->callAPISuccess('Address', 'create', array( + 'city' => 'Mouseville', + 'location_type_id' => 'Main', + 'api.LocBlock.create' => 1, + 'contact_id' => $ownID, + )); + $this->callAPISuccessGetSingle('Address', array('city' => 'Mouseville', 'check_permissions' => 1)); + CRM_Core_DAO::executeQuery('UPDATE civicrm_address SET contact_id = NULL WHERE contact_id = %1', array(1 => array($ownID, 'Integer'))); + $this->callAPISuccessGetSingle('Address', array('city' => 'Mouseville', 'check_permissions' => 1)); + } + /** * Ensure contact permissions extend to related entities like email */ -- 2.25.1