$this->selectClause();
$this->_whereClause = $this->whereClause();
+ if (array_key_exists('civicrm_contribution', $this->_whereTables)) {
+ $component = 'contribution';
+ }
+ if (array_key_exists('civicrm_membership', $this->_whereTables)) {
+ $component = 'membership';
+ }
+ CRM_Financial_BAO_FinancialType::buildPermissionedClause($this->_whereClause, $component);
$this->_fromClause = self::fromClause($this->_tables, NULL, NULL, $this->_primaryLocation, $this->_mode);
$this->_simpleFromClause = self::fromClause($this->_whereTables, NULL, NULL, $this->_primaryLocation, $this->_mode);
);
$checkLineItem = FALSE;
$row = array();
- if (!CRM_Core_Permission::check('view contributions of type ' . CRM_Contribute_PseudoConstant::financialType($result->financial_type_id))) {
- continue;
- }
// Now check for lineItems
$lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($result->id);
foreach ($lineItems as $items) {
return $membershipTypes;
}
- public static function buildPermissionedClause(&$whereClauses) {
- self::getAvailableFinancialTypes($financialType);
- foreach ($financialType as $id => $type) {
- $ids[] = $id;
+ public static function buildPermissionedClause(&$whereClauses, $component = NULL) {
+ self::getAvailableFinancialTypes($types);
+ if (is_array($whereClauses)) {
+ $whereClauses[] = ' financial_type_id IN (' . implode(',' , array_keys($types)) .')';
+ }
+ else {
+ if ($component == 'contribution') {
+ $column = "financial_type_id";
+ }
+ if ($component == 'membership') {
+ $types = array();
+ self::getAvailableMembershipTypes($types, 'view');
+ $column = "membership_type_id";
+ }
+ $whereClauses .= " AND civicrm_{$component}.{$column} IN (". implode(',' , array_keys($types)) .")";
}
- $whereClauses[] = ' financial_type_id IN (' . implode(',' , $ids) .')';
}
public static function checkPermissionedLineItems($id, $op, $force = TRUE) {