Don't try to insert 0 as a user_id to ACL contact cache
authorJon Goldberg <jon@megaphonetech.com>
Fri, 29 Dec 2023 21:05:49 +0000 (16:05 -0500)
committerJon Goldberg <jon@megaphonetech.com>
Fri, 29 Dec 2023 21:05:49 +0000 (16:05 -0500)
CRM/Contact/BAO/Contact/Permission.php

index db3ff979f13b63736a2014f13b7ac385fa4fb2ce..d839e1cf3c7d45f88110a58a68def1f44575697a 100644 (file)
@@ -294,8 +294,8 @@ AND    $operationClause
 
     // Add in a row for the logged in contact. Do not try to combine with the above query or an ugly OR will appear in
     // the permission clause.
-    if (CRM_Core_Permission::check('edit my contact') ||
-      ($type == CRM_Core_Permission::VIEW && CRM_Core_Permission::check('view my contact'))) {
+    if ($userID && (CRM_Core_Permission::check('edit my contact') ||
+      ($type == CRM_Core_Permission::VIEW && CRM_Core_Permission::check('view my contact')))) {
       if (!CRM_Core_DAO::singleValueQuery("
         SELECT count(*) FROM civicrm_acl_contact_cache WHERE user_id = %1 AND contact_id = %1 AND operation = '{$operation}' LIMIT 1", $queryParams)) {
         CRM_Core_DAO::executeQuery("INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(%1, %1, '{$operation}')", $queryParams);