UserJob - Fix deprecated syntax in addSelectWhereClause
authorcolemanw <coleman@civicrm.org>
Mon, 27 Nov 2023 21:10:58 +0000 (16:10 -0500)
committercolemanw <coleman@civicrm.org>
Mon, 27 Nov 2023 21:10:58 +0000 (16:10 -0500)
CRM/Core/BAO/UserJob.php

index a6ba558f8391f30e250b85d0afb29a9a695ee83f..8f572fa54d4f3dcfdad0f1e78230e418a64cf0fb 100644 (file)
@@ -154,10 +154,9 @@ class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements HookInterface
    */
   public function addSelectWhereClause(string $entityName = NULL, int $userId = NULL, array $conditions = []): array {
     $clauses = [];
-    if (!\CRM_Core_Permission::check('administer queues')) {
-      // @todo - the is_template should really be prefixed. We need to add support
-      // for that in the compiler & then this would be `{table}.is_template`
-      $clauses['created_id'] = '= ' . (int) CRM_Core_Session::getLoggedInContactID() . ' OR is_template = 1';
+    if (!\CRM_Core_Permission::check('administer queues', $userId)) {
+      // Only allow access to users' own jobs (or templates)
+      $clauses['created_id'][] = '= ' . (int) CRM_Core_Session::getLoggedInContactID() . ' OR {is_template} = 1';
     }
     CRM_Utils_Hook::selectWhereClause($this, $clauses, $userId, $conditions);
     return $clauses;