additional fixes
authordeb.monish <monish.deb@webaccessglobal.com>
Fri, 20 May 2016 09:57:00 +0000 (15:27 +0530)
committerdeb.monish <monish.deb@webaccessglobal.com>
Fri, 20 May 2016 11:06:43 +0000 (16:36 +0530)
CRM/ACL/BAO/ACL.php

index 1033986c5f21b1a78aaab365f16ba99a07c2a201..205cb0b9ca1badda38e8e8c7c8d2b04805b365bf 100644 (file)
@@ -729,9 +729,14 @@ SELECT count( a.id )
    * @return array - the first key is join part of the query and the second key is the where part of the query
    */
   public static function buildAcl($contactId) {
+    // If there is no $contactId passed return empty ACL join and where clause
+    if (empty($contactId)) {
+      return array('', '');
+    }
+
     $tables = array();
     $whereTables = array();
-    $whereClause = CRM_ACL_BAO_ACL::whereClause(CRM_Core_Permission::VIEW, $tables, $whereTables, $contactId);
+    $whereClause = CRM_ACL_BAO_ACL::whereClause(CRM_Core_Permission::VIEW, $tables, $whereTables, $contactId, TRUE);
     if (strlen($whereClause)) {
       $whereClause = " AND (" . $whereClause . ")";
     }
@@ -761,10 +766,11 @@ SELECT count( a.id )
    * @param $tables
    * @param $whereTables
    * @param int $contactID
+   * @param bool $strictReturn If there is no where clause build for ACL
    *
    * @return null|string
    */
-  public static function whereClause($type, &$tables, &$whereTables, $contactID = NULL) {
+  public static function whereClause($type, &$tables, &$whereTables, $contactID = NULL, $strictReturn = FALSE) {
     $acls = CRM_ACL_BAO_Cache::build($contactID);
 
     $whereClause = NULL;
@@ -874,7 +880,7 @@ SELECT g.*
     // call the hook to get additional whereClauses
     CRM_Utils_Hook::aclWhereClause($type, $tables, $whereTables, $contactID, $whereClause);
 
-    if (empty($whereClause)) {
+    if (empty($whereClause) && !$strictReturn) {
       $whereClause = ' ( 0 ) ';
     }