X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FTask.php;h=146daba42dabcb1a31ac3bbee986aa099eaa69cc;hb=874c9be71a0eaece92406de8089dc7de42298084;hp=06feed0f20a8f00aa90f51777b0132d7569ef2b8;hpb=e23994332a289a0c3c6d202375bc7ab0a09ab8ea;p=civicrm-core.git diff --git a/CRM/Contribute/Task.php b/CRM/Contribute/Task.php index 06feed0f20..6f997a815e 100644 --- a/CRM/Contribute/Task.php +++ b/CRM/Contribute/Task.php @@ -1,9 +1,9 @@ array('title' => ts('Delete Contributions'), + 1 => array( + 'title' => ts('Delete Contributions'), 'class' => 'CRM_Contribute_Form_Task_Delete', 'result' => FALSE, ), - 2 => array('title' => ts('Print Contributions'), + 2 => array( + 'title' => ts('Print Selected Rows'), 'class' => 'CRM_Contribute_Form_Task_Print', 'result' => FALSE, ), - 3 => array('title' => ts('Export Contributions'), + 3 => array( + 'title' => ts('Export Contributions'), 'class' => array( 'CRM_Export_Form_Select', 'CRM_Export_Form_Map', ), 'result' => FALSE, ), - 4 => array('title' => ts('Batch Update Contributions Via Profile'), + 4 => array( + 'title' => ts('Batch Update Contributions Via Profile'), 'class' => array( 'CRM_Contribute_Form_Task_PickProfile', 'CRM_Contribute_Form_Task_Batch', ), 'result' => TRUE, ), - 5 => array('title' => ts('Send Email to Contacts'), + 5 => array( + 'title' => ts('Send Email to Contacts'), 'class' => 'CRM_Contribute_Form_Task_Email', 'result' => TRUE, ), - 6 => array('title' => ts('Update Pending Contribution Status'), + 6 => array( + 'title' => ts('Update Pending Contribution Status'), 'class' => 'CRM_Contribute_Form_Task_Status', 'result' => TRUE, ), - 7 => array('title' => ts('Print or Email Contribution Receipts'), + 7 => array( + 'title' => ts('Print or Email Contribution Receipts'), 'class' => 'CRM_Contribute_Form_Task_PDF', 'result' => FALSE, ), - 8 => array('title' => ts('Thank-you Letters for Contributions'), + 8 => array( + 'title' => ts('Thank-you Letters for Contributions'), 'class' => 'CRM_Contribute_Form_Task_PDFLetter', 'result' => FALSE, ), + 9 => array( + 'title' => ts('Print or Email Contribution Invoices'), + 'class' => 'CRM_Contribute_Form_Task_Invoice', + 'result' => FALSE, + ), ); //CRM-4418, check for delete if (!CRM_Core_Permission::check('delete in CiviContribute')) { unset(self::$_tasks[1]); } + //CRM-12920 - check for edit permission + if( !CRM_Core_Permission::check('edit contributions') ){ + unset(self::$_tasks[4], self::$_tasks[6]); + } + // remove action "Print or Email Contribution Invoices" + $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings'); + $invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings); + if (!$invoicing) { + unset(self::$_tasks[9]); + } CRM_Utils_Hook::searchTasks('contribution', self::$_tasks); asort(self::$_tasks); } @@ -126,30 +148,27 @@ class CRM_Contribute_Task { * * @return array the set of task titles * @static - * @access public */ - static function &taskTitles() { + public static function &taskTitles() { self::tasks(); $titles = array(); foreach (self::$_tasks as $id => $value) { - // skip Print Contribution task - if ($id != 2) { - $titles[$id] = $value['title']; - } + $titles[$id] = $value['title']; } return $titles; } /** - * show tasks selectively based on the permission level + * Show tasks selectively based on the permission level * of the user * * @param int $permission * + * @param bool $softCreditFiltering + * * @return array set of tasks that are valid for the user - * @access public */ - static function &permissionedTaskTitles($permission) { + public static function &permissionedTaskTitles($permission, $softCreditFiltering = FALSE) { $tasks = array(); if (($permission == CRM_Core_Permission::EDIT) || CRM_Core_Permission::check('edit contributions') @@ -168,6 +187,9 @@ class CRM_Contribute_Task { $tasks[1] = self::$_tasks[1]['title']; } } + if ($softCreditFiltering) { + unset($tasks[4], $tasks[7]); + } return $tasks; } @@ -179,9 +201,8 @@ class CRM_Contribute_Task { * * @return array the set of tasks for a group of contributors * @static - * @access public */ - static function getTask($value) { + public static function getTask($value) { self::tasks(); if (!$value || !CRM_Utils_Array::value($value, self::$_tasks)) { // make the print task by default @@ -198,4 +219,3 @@ class CRM_Contribute_Task { ); } } -