From 1484ea61a363e13b267a5d2b29355bd9d3502b68 Mon Sep 17 00:00:00 2001 From: Edsel Date: Mon, 25 May 2015 12:41:36 +0530 Subject: [PATCH] ICM-1 Added permission check for memberships --- CRM/Member/BAO/Membership.php | 7 ++++++- CRM/Member/Page/Tab.php | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index 0155ca046c..1a9e1cbc2f 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -1595,6 +1595,11 @@ FROM civicrm_membership_type * @return null|string */ public static function getContactMembershipCount($contactID, $activeOnly = FALSE) { + CRM_Financial_BAO_FinancialType::getAvailableMembershipTypes($membershipTypes); + $addWhere = " AND membership_type_id IN (0)"; + if (!empty($membershipTypes)) { + $addWhere = " AND membership_type_id IN (" . implode(',' , array_keys($membershipTypes)) . ")"; + } $select = "SELECT count(*) FROM civicrm_membership "; $where = "WHERE civicrm_membership.contact_id = {$contactID} AND civicrm_membership.is_test = 0 "; @@ -1604,7 +1609,7 @@ FROM civicrm_membership_type $where .= " and civicrm_membership_status.is_current_member = 1"; } - $query = $select . $where; + $query = $select . $where . $addWhere; return CRM_Core_DAO::singleValueQuery($query); } diff --git a/CRM/Member/Page/Tab.php b/CRM/Member/Page/Tab.php index 455219e8ab..4adfafbbc8 100644 --- a/CRM/Member/Page/Tab.php +++ b/CRM/Member/Page/Tab.php @@ -50,11 +50,17 @@ class CRM_Member_Page_Tab extends CRM_Core_Page { */ public function browse() { $links = self::links('all', $this->_isPaymentProcessor, $this->_accessContribution); + CRM_Financial_BAO_FinancialType::getAvailableMembershipTypes($membershipTypes); + $addWhere = "membership_type_id IN (0)"; + if (!empty($membershipTypes)) { + $addWhere = "membership_type_id IN (" . implode(',' , array_keys($membershipTypes)) . ")"; + } $membership = array(); $dao = new CRM_Member_DAO_Membership(); $dao->contact_id = $this->_contactId; $dao->is_test = 0; + $dao->whereAdd($addWhere); //$dao->orderBy('name'); $dao->find(); -- 2.25.1