CRM_Core_Action::DELETE, 'edit' => CRM_Core_Action::UPDATE, 'create' => CRM_Core_Action::ADD]; CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($types, $operationMap[$op]); if (empty($params['financial_type_id'])) { $params['financial_type_id'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_LineItem', $params['id'], 'financial_type_id'); } if (!in_array($params['financial_type_id'], array_keys($types))) { throw new API_Exception('You do not have permission to ' . $op . ' this line item'); } } } } /** * Implements hook_civicrm_selectWhereClause(). * * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_selectWhereClause */ function financialacls_civicrm_selectWhereClause($entity, &$clauses) { if ($entity === 'LineItem') { if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus()) { $types = []; CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($types); if ($types) { $clauses['financial_type_id'] = 'IN (' . implode(',', array_keys($types)) . ')'; } else { $clauses['financial_type_id'] = '= 0'; } } } } // --- Functions below this ship commented out. Uncomment as required. --- /** * Implements hook_civicrm_preProcess(). * * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_preProcess */ //function financialacls_civicrm_preProcess($formName, &$form) { // //} /** * Implements hook_civicrm_navigationMenu(). * * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_navigationMenu */ //function financialacls_civicrm_navigationMenu(&$menu) { // _financialacls_civix_insert_navigation_menu($menu, 'Mailings', array( // 'label' => E::ts('New subliminal message'), // 'name' => 'mailing_subliminal_message', // 'url' => 'civicrm/mailing/subliminal', // 'permission' => 'access CiviMail', // 'operator' => 'OR', // 'separator' => 0, // )); // _financialacls_civix_navigationMenu($menu); //}