CRM-17867 - Set checkPermission before running getAclClause
authorColeman Watts <coleman@civicrm.org>
Thu, 10 Mar 2016 19:03:19 +0000 (14:03 -0500)
committerColeman Watts <coleman@civicrm.org>
Mon, 10 Oct 2016 18:15:50 +0000 (14:15 -0400)
Civi/API/SelectQuery.php
Civi/Test/HeadlessInterface.php
api/v3/utils.php

index 3764992baa362adc06f74840efcc429d399998b6..44c347c64b0752c8a5944d3558b1f5ab8e18bb4a 100644 (file)
@@ -86,14 +86,15 @@ abstract class SelectQuery {
   /**
    * @var string|bool
    */
-  public $checkPermissions;
+  protected $checkPermissions;
 
   protected $apiVersion;
 
   /**
    * @param string $entity
+   * @param bool $checkPermissions
    */
-  public function __construct($entity) {
+  public function __construct($entity, $checkPermissions) {
     $this->entity = $entity;
     require_once 'api/v3/utils.php';
     $baoName = _civicrm_api3_get_BAO($entity);
@@ -106,6 +107,7 @@ abstract class SelectQuery {
     $bao->free();
 
     // Add ACLs first to avoid redundant subclauses
+    $this->checkPermissions = $checkPermissions;
     $this->query->where($this->getAclClause(self::MAIN_TABLE_ALIAS, $baoName));
   }
 
index 85de268943c10c339b0b661d719a2938e6e111f1..95227f76856ccf292a9429451964beab8333a929 100644 (file)
@@ -7,7 +7,7 @@ namespace Civi\Test;
  * @package Civi\Test
  *
  * To run your test against a fake, headless database, flag it with the
- * HeadlessInterface. CiviTestListener will automatically boot
+ * HeadlessInterface. CiviTestListener will automatically boot Civi.
  *
  * Alternatively, if you wish to run a test in a live (CMS-enabled) environment,
  * flag it with EndToEndInterface.
@@ -23,7 +23,7 @@ namespace Civi\Test;
 interface HeadlessInterface {
 
   /**
-   * The setupHeadless functions runs at the start of each test case, right before
+   * The setupHeadless function runs at the start of each test case, right before
    * the headless environment reboots.
    *
    * It should perform any necessary steps required for putting the database
index 42f9f0383b369fa8af5b3e4390e9e3e32844d193..53f3206ed57ff0c5f9fdae045d93da0f8f6ee940 100644 (file)
@@ -1339,7 +1339,7 @@ function _civicrm_api3_basic_get($bao_name, $params, $returnAsSuccess = TRUE, $e
   $entity = CRM_Core_DAO_AllCoreTables::getBriefName(str_replace('_BAO_', '_DAO_', $bao_name));
   $options = _civicrm_api3_get_options_from_params($params);
 
-  $query = new \Civi\API\Api3SelectQuery($entity);
+  $query = new \Civi\API\Api3SelectQuery($entity, CRM_Utils_Array::value('check_permissions', $params, FALSE));
   $query->where = $params;
   if ($options['is_count']) {
     $query->select = array('count');
@@ -1351,7 +1351,6 @@ function _civicrm_api3_basic_get($bao_name, $params, $returnAsSuccess = TRUE, $e
   }
   $query->limit = $options['limit'];
   $query->offset = $options['offset'];
-  $query->checkPermissions = CRM_Utils_Array::value('check_permissions', $params, FALSE);
   $query->merge($sql);
   $result = $query->run();