CRM-17310 - simplification
authorSamuel Vanhove <samuel@symbiotic.coop>
Mon, 6 Jun 2016 00:07:38 +0000 (20:07 -0400)
committereileen <emcnaughton@wikimedia.org>
Tue, 7 Jun 2016 17:17:36 +0000 (11:17 -0600)
CRM/Core/BAO/Navigation.php
CRM/Report/Form.php
CRM/Report/Form/Instance.php
CRM/Report/Info.php

index ed189576a24d5ce3d8b9c8195609971e9da424e6..08c345ef2529f3a15c03e24923ce137a9c07b0f3 100644 (file)
@@ -604,13 +604,6 @@ ORDER BY parent_id, weight";
             return $showItem;
           }
         }
-        // CRM-17310 my reports allow people with access own reports to see the report if it is theirs.
-        elseif ($key == 'access own private reports') {
-          // Special permission processing for private reports.
-          $report_url = parse_url(ltrim($url, '/'));
-          $instance_id = CRM_Report_Utils_Report::getInstanceID($report_url['path']);
-          $hasPermission = $showItem = CRM_Report_BAO_ReportInstance::contactIsOwner($instance_id);
-        }
         else {
           $hasPermission = TRUE;
         }
index aeb5720d2df77267ffd7d3f2d15b2c331220057c..3c519aa7276be4ec7ff5149d428e1e9a79232d87 100644 (file)
@@ -624,6 +624,15 @@ class CRM_Report_Form extends CRM_Core_Form {
       }
     }
 
+    // Special permissions check for private instance if it's not the current contact instance
+    if (CRM_Report_BAO_ReportInstance::reportIsPrivate($this->_id) &&
+      !CRM_Report_BAO_ReportInstance::contactIsOwner($this->_id)) {
+      if (!CRM_Core_Permission::check('access all private reports')) {
+        $this->_instanceForm = FALSE;
+        $this->assign('criteriaForm', FALSE);
+      }
+    }
+
     $this->_instanceButtonName = $this->getButtonName('submit', 'save');
     $this->_createNewButtonName = $this->getButtonName('submit', 'next');
     $this->_printButtonName = $this->getButtonName('submit', 'print');
index 2c14372e9539db4c44dcf48e057b1a28d2300ee0..f0c0846a2f5f9c616120ebbd27b3df0a810500ec 100644 (file)
@@ -368,8 +368,6 @@ class CRM_Report_Form_Instance {
     // it seems to be not set at all if unchecked.
     if (!empty($formValues['add_to_my_reports'])) {
       $params['owner_id'] = CRM_Core_Session::singleton()->getLoggedInContactID();
-      $params['permission'] = 'access own private reports';
-      $params['grouprole'] = array();
     }
     else {
       $params['owner_id'] = 'null';
index 6f4ee789c476ca17ad3096725657b2027b3fbba4..f38adcaf47dd1f85876af80b601b39ec7977bd02 100644 (file)
@@ -87,13 +87,9 @@ class CRM_Report_Info extends CRM_Core_Component_Info {
         ts('access Report Criteria'),
         ts('Change report search criteria'),
       ),
-      'access own private reports' => array(
-        ts('access own private reports'),
-        ts('Access reports owned by the contact'),
-      ),
-      'access all private reports' => array(
-        ts('access all private reports'),
-        ts('Access all private reports'),
+      'administer private reports' => array(
+        ts('administer private reports'),
+        ts('Edit all private reports'),
       ),
       'administer reserved reports' => array(
         ts('administer reserved reports'),