X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FTask.php;h=7b7b708f71f1d9c09ff78e496d3b9ea74e746d99;hb=06b24f030643747e4223fd83be521dbb75b10c28;hp=57526b738f9231b62f8bc47a9929b761ba263dbb;hpb=73be989745ea968ffa538d5679bce4303bbf5306;p=civicrm-core.git diff --git a/CRM/Contribute/Task.php b/CRM/Contribute/Task.php index 57526b738f..7b7b708f71 100644 --- a/CRM/Contribute/Task.php +++ b/CRM/Contribute/Task.php @@ -1,9 +1,9 @@ '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); } @@ -146,15 +161,17 @@ class CRM_Contribute_Task { } /** - * 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) { + static function &permissionedTaskTitles($permission, $softCreditFiltering = FALSE) { $tasks = array(); if (($permission == CRM_Core_Permission::EDIT) || CRM_Core_Permission::check('edit contributions') @@ -173,6 +190,9 @@ class CRM_Contribute_Task { $tasks[1] = self::$_tasks[1]['title']; } } + if ($softCreditFiltering) { + unset($tasks[4], $tasks[7]); + } return $tasks; }