From bdd50f2943be6c11bcfecbbbb0a60b61b8b43318 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Mon, 5 Aug 2019 12:39:36 +1000 Subject: [PATCH] dev/core#1061 Ensure that custom data is not loaded on update subscription form when in self service mode and re-use shared function --- CRM/Contribute/Form/UpdateSubscription.php | 20 +++++++------------ .../Contribute/Form/UpdateSubscription.tpl | 4 +++- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/CRM/Contribute/Form/UpdateSubscription.php b/CRM/Contribute/Form/UpdateSubscription.php index 0e50b0383cb9..d84d7a608a77 100644 --- a/CRM/Contribute/Form/UpdateSubscription.php +++ b/CRM/Contribute/Form/UpdateSubscription.php @@ -41,8 +41,6 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Contribute_Form_Contrib protected $_subscriptionDetails = NULL; - protected $_selfService = FALSE; - public $_paymentProcessor = NULL; public $_paymentProcessorObj = NULL; @@ -99,13 +97,9 @@ public function preProcess() { $this->assign('contactId', $this->_subscriptionDetails->contact_id); } - if (!CRM_Core_Permission::check('edit contributions')) { - if ($this->_subscriptionDetails->contact_id != $this->getContactID()) { - CRM_Core_Error::statusBounce(ts('You do not have permission to update subscription.')); - } - $this->_selfService = TRUE; - } - $this->assign('self_service', $this->_selfService); + $this->isSelfService(); + + $this->assign('self_service', $this->selfService); $this->editableScheduleFields = $this->_paymentProcessorObj->getEditableRecurringScheduleFields(); @@ -125,7 +119,7 @@ public function preProcess() { } // when custom data is included in this page - if (!empty($_POST['hidden_custom'])) { + if (!empty($_POST['hidden_custom']) && !$this->selfService) { CRM_Custom_Form_CustomData::preProcess($this, NULL, NULL, 1, 'ContributionRecur', $this->contributionRecurID); CRM_Custom_Form_CustomData::buildQuickForm($this); CRM_Custom_Form_CustomData::setDefaultValues($this); @@ -187,7 +181,7 @@ public function buildQuickForm() { } if (CRM_Contribute_BAO_ContributionRecur::supportsFinancialTypeChange($this->contributionRecurID)) { - $this->addEntityRef('financial_type_id', ts('Financial Type'), ['entity' => 'FinancialType'], !$this->_selfService); + $this->addEntityRef('financial_type_id', ts('Financial Type'), ['entity' => 'FinancialType'], !$this->selfService); } // Add custom data @@ -195,7 +189,7 @@ public function buildQuickForm() { $this->assign('entityID', $this->contributionRecurID); $type = 'next'; - if ($this->_selfService) { + if ($this->selfService) { $type = 'submit'; } @@ -220,7 +214,7 @@ public function postProcess() { // store the submitted values in an array $params = $this->exportValues(); - if ($this->_selfService && $this->_donorEmail) { + if ($this->selfService && $this->_donorEmail) { // for self service force notify $params['is_notify'] = 1; } diff --git a/templates/CRM/Contribute/Form/UpdateSubscription.tpl b/templates/CRM/Contribute/Form/UpdateSubscription.tpl index 3e45a885a5b6..036bacfc45f5 100644 --- a/templates/CRM/Contribute/Form/UpdateSubscription.tpl +++ b/templates/CRM/Contribute/Form/UpdateSubscription.tpl @@ -52,7 +52,9 @@ {/if} - {include file="CRM/common/customDataBlock.tpl"} + {if !$self_service} + {include file="CRM/common/customDataBlock.tpl"} + {/if}
{include file="CRM/common/formButtons.tpl" location="bottom"}