From a4e950520862b7d830264a8a9f2946e1efeade91 Mon Sep 17 00:00:00 2001
From: colemanw <coleman@civicrm.org>
Date: Sun, 17 Sep 2023 15:59:42 -0400
Subject: [PATCH] DAO - addSelectWhereClause should always return an array

---
 CRM/Activity/BAO/Activity.php                        | 2 +-
 CRM/Case/BAO/Case.php                                | 2 +-
 CRM/Case/BAO/CaseContact.php                         | 2 +-
 CRM/Contact/BAO/Contact.php                          | 2 +-
 CRM/Contact/BAO/Group.php                            | 2 +-
 CRM/Contact/BAO/Query.php                            | 2 +-
 CRM/Contact/BAO/RelationshipCache.php                | 2 +-
 CRM/Core/BAO/CustomValue.php                         | 2 +-
 CRM/Core/BAO/File.php                                | 2 +-
 CRM/Core/BAO/UFJoin.php                              | 2 +-
 CRM/Core/BAO/UFMatch.php                             | 2 +-
 CRM/Core/DAO.php                                     | 2 +-
 ext/oauth-client/CRM/OAuth/BAO/OAuthContactToken.php | 2 +-
 13 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php
index 4aaa2e596d2..3d320dafb8f 100644
--- a/CRM/Activity/BAO/Activity.php
+++ b/CRM/Activity/BAO/Activity.php
@@ -803,7 +803,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     $clauses = [];
     $permittedActivityTypeIDs = self::getPermittedActivityTypes();
     $allActivityTypes = self::buildOptions('activity_type_id', 'validate');
diff --git a/CRM/Case/BAO/Case.php b/CRM/Case/BAO/Case.php
index aaa7fab22b6..68cc1c1a7ff 100644
--- a/CRM/Case/BAO/Case.php
+++ b/CRM/Case/BAO/Case.php
@@ -3015,7 +3015,7 @@ WHERE id IN (' . implode(',', $copiedActivityIds) . ')';
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     // We always return an array with these keys, even if they are empty,
     // because this tells the query builder that we have considered these fields for acls
     $clauses = [
diff --git a/CRM/Case/BAO/CaseContact.php b/CRM/Case/BAO/CaseContact.php
index af7086c7c28..d1fa6ceb254 100644
--- a/CRM/Case/BAO/CaseContact.php
+++ b/CRM/Case/BAO/CaseContact.php
@@ -73,7 +73,7 @@ class CRM_Case_BAO_CaseContact extends CRM_Case_DAO_CaseContact implements \Civi
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     return [
       // Reuse case acls
       'case_id' => CRM_Utils_SQL::mergeSubquery('Case'),
diff --git a/CRM/Contact/BAO/Contact.php b/CRM/Contact/BAO/Contact.php
index f443fef15f5..f5635b1e5ee 100644
--- a/CRM/Contact/BAO/Contact.php
+++ b/CRM/Contact/BAO/Contact.php
@@ -3411,7 +3411,7 @@ LEFT JOIN civicrm_address ON ( civicrm_address.contact_id = civicrm_contact.id )
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     // We always return an array with these keys, even if they are empty,
     // because this tells the query builder that we have considered these fields for acls
     $clauses = [
diff --git a/CRM/Contact/BAO/Group.php b/CRM/Contact/BAO/Group.php
index e39077b4db3..617d09e4ef7 100644
--- a/CRM/Contact/BAO/Group.php
+++ b/CRM/Contact/BAO/Group.php
@@ -312,7 +312,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     $clauses = [];
     if (!CRM_Core_Permission::check([['edit all contacts', 'view all contacts']])) {
       $allowedGroups = CRM_Core_Permission::group(NULL, FALSE);
diff --git a/CRM/Contact/BAO/Query.php b/CRM/Contact/BAO/Query.php
index 8642c163bc6..9f015588926 100644
--- a/CRM/Contact/BAO/Query.php
+++ b/CRM/Contact/BAO/Query.php
@@ -5080,7 +5080,7 @@ civicrm_relationship.start_date > {$today}
       if (isset($this->_tables['civicrm_activity'])) {
         $bao = new CRM_Activity_BAO_Activity();
         $clauses = $subclauses = [];
-        foreach ((array) $bao->addSelectWhereClause() as $field => $vals) {
+        foreach ($bao->addSelectWhereClause() as $field => $vals) {
           if ($vals && $field !== 'id') {
             $clauses[] = $bao->tableName() . ".$field " . $vals;
           }
diff --git a/CRM/Contact/BAO/RelationshipCache.php b/CRM/Contact/BAO/RelationshipCache.php
index 54906ee2e91..b7fbaa26909 100644
--- a/CRM/Contact/BAO/RelationshipCache.php
+++ b/CRM/Contact/BAO/RelationshipCache.php
@@ -158,7 +158,7 @@ class CRM_Contact_BAO_RelationshipCache extends CRM_Contact_DAO_RelationshipCach
   /**
    * @return array
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     // Permission for this entity depends on access to the two related contacts.
     $contactClause = CRM_Utils_SQL::mergeSubquery('Contact');
     $clauses = [
diff --git a/CRM/Core/BAO/CustomValue.php b/CRM/Core/BAO/CustomValue.php
index 88024d0b86c..9a00a61b684 100644
--- a/CRM/Core/BAO/CustomValue.php
+++ b/CRM/Core/BAO/CustomValue.php
@@ -214,7 +214,7 @@ class CRM_Core_BAO_CustomValue extends CRM_Core_DAO {
    * ACL clause for an APIv4 custom pseudo-entity (aka multi-record custom group extending Contact).
    * @return array
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     $clauses = [
       'entity_id' => CRM_Utils_SQL::mergeSubquery('Contact'),
     ];
diff --git a/CRM/Core/BAO/File.php b/CRM/Core/BAO/File.php
index 98b5abd38ad..6c24a6078da 100644
--- a/CRM/Core/BAO/File.php
+++ b/CRM/Core/BAO/File.php
@@ -837,7 +837,7 @@ HEREDOC;
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     // TODO: This seemded like a good idea... piggybacking off the ACL clause of EntityFile
     // however that's too restrictive because entityFile ACLs are limited to just attachments,
     // so this would prevent access to other file fields (e.g. custom fields)
diff --git a/CRM/Core/BAO/UFJoin.php b/CRM/Core/BAO/UFJoin.php
index 493594176dc..d89e2cd46b0 100644
--- a/CRM/Core/BAO/UFJoin.php
+++ b/CRM/Core/BAO/UFJoin.php
@@ -180,7 +180,7 @@ class CRM_Core_BAO_UFJoin extends CRM_Core_DAO_UFJoin {
    *
    * @return array
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     $clauses = [];
     CRM_Utils_Hook::selectWhereClause($this, $clauses);
     return $clauses;
diff --git a/CRM/Core/BAO/UFMatch.php b/CRM/Core/BAO/UFMatch.php
index d3ef5951493..4c2317222c9 100644
--- a/CRM/Core/BAO/UFMatch.php
+++ b/CRM/Core/BAO/UFMatch.php
@@ -618,7 +618,7 @@ AND    domain_id    = %4
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     // Prevent default behavior of joining ACLs onto the contact_id field.
     $clauses = [];
     CRM_Utils_Hook::selectWhereClause($this, $clauses);
diff --git a/CRM/Core/DAO.php b/CRM/Core/DAO.php
index b980479fcbd..fd0b562fd60 100644
--- a/CRM/Core/DAO.php
+++ b/CRM/Core/DAO.php
@@ -3068,7 +3068,7 @@ SELECT contact_id
    *
    * @return array
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     $clauses = [];
     $fields = $this->fields();
     // Notes should check permissions on the entity_id field, not the contact_id field
diff --git a/ext/oauth-client/CRM/OAuth/BAO/OAuthContactToken.php b/ext/oauth-client/CRM/OAuth/BAO/OAuthContactToken.php
index 69228fb6225..6fbe616ac61 100644
--- a/ext/oauth-client/CRM/OAuth/BAO/OAuthContactToken.php
+++ b/ext/oauth-client/CRM/OAuth/BAO/OAuthContactToken.php
@@ -99,7 +99,7 @@ class CRM_OAuth_BAO_OAuthContactToken extends CRM_OAuth_DAO_OAuthContactToken {
   /**
    * @inheritDoc
    */
-  public function addSelectWhereClause() {
+  public function addSelectWhereClause(): array {
     $clauses = [];
     $loggedInContactID = CRM_Core_Session::getLoggedInContactID();
 
-- 
GitLab