CRM-17795 - Apparently not every DAO has a BAO
authorColeman Watts <coleman@civicrm.org>
Tue, 12 Jan 2016 02:12:10 +0000 (21:12 -0500)
committerColeman Watts <coleman@civicrm.org>
Tue, 12 Jan 2016 02:38:50 +0000 (21:38 -0500)
Civi/API/SelectQuery.php

index 2a5d115a84fbbda77fdb1bc2c888d27a38ebd6de..9c9d837304d0ca4298045384c768c069f2c389c1 100644 (file)
@@ -516,19 +516,19 @@ class SelectQuery {
    * Get acl clause for an entity
    *
    * @param string $tableAlias
-   * @param \CRM_Core_DAO $bao
+   * @param \CRM_Core_DAO $daoName
    * @return null|string
    */
-  private function getAclClause($tableAlias, $bao = NULL) {
+  private function getAclClause($tableAlias, $daoName = NULL) {
     if (!$this->checkPermissions) {
       return NULL;
     }
-    if (!$bao) {
+    if (!$daoName) {
       $bao = $this->bao;
     }
     else {
-      $baoName = str_replace('_DAO_', '_BAO_', $bao);
-      $bao = new $baoName();
+      $baoName = str_replace('_DAO_', '_BAO_', $daoName);
+      $bao = class_exists($baoName) ? new $baoName() : new $daoName();
     }
     return $bao->apiWhereClause($tableAlias);
   }