dev/core#1444 Permit activities with campaigns on contact tab for contacts without...
authoreileen <emcnaughton@wikimedia.org>
Thu, 5 Dec 2019 02:57:42 +0000 (15:57 +1300)
committereileen <emcnaughton@wikimedia.org>
Mon, 9 Dec 2019 06:42:14 +0000 (19:42 +1300)
It seems that if an activity has a campaign it is suppressed from the activity table unless the user has 'administer CiviCampaign'.
This is inconsistent with the code to view the activity - which permits the activity to be viewed but the campaign cannot be edited
It is also inconsistent with activity search behaviour

CRM/Activity/BAO/Activity.php

index 8f460090e670f27412d32fda49c986077f0694b5..a42019a405108b5ff5d0435fd884361e564f656c 100644 (file)
@@ -2436,14 +2436,9 @@ INNER JOIN  civicrm_option_group grp ON (grp.id = option_group_id AND grp.name =
 
     $activityParams['activity_type_id'] = self::filterActivityTypes($params);
     $enabledComponents = self::activityComponents();
-    // @todo - should we move this to activity get api.
-    foreach ([
-      'case_id' => 'CiviCase',
-      'campaign_id' => 'CiviCampaign',
-    ] as $attr => $component) {
-      if (!in_array($component, $enabledComponents)) {
-        $activityParams[$attr] = ['IS NULL' => 1];
-      }
+    // @todo - this appears to be duplicating the activity api.
+    if (!in_array('CiviCase', $enabledComponents)) {
+      $activityParams['case_id'] = ['IS NULL' => 1];
     }
     return $activityParams;
   }