From dd1ff9c66d7a26ce37ffb626f4a2daa489968cbb Mon Sep 17 00:00:00 2001 From: Jose Consador Date: Tue, 23 Jun 2015 11:35:21 +0800 Subject: [PATCH 1/4] Save authenticated flag to the database. Do not display Create Ticket and Dashboard/Grid if the extension is not setup properly. --- .../Zendesk/Block/Adminhtml/Dashboard.php | 3 +-- .../Block/Adminhtml/Dashboard/Grids.php | 5 +++-- .../Zendesk/Model/Api/SupportAddresses.php | 3 +-- .../Zendesk/Zendesk/Model/Observer.php | 4 ++++ .../Adminhtml/ZendeskController.php | 5 +++-- .../data-upgrade-2.0.6-2.0.7.php | 20 +++++++++++++++++++ .../community/Zendesk/Zendesk/etc/config.xml | 2 +- .../community/Zendesk/Zendesk/etc/system.xml | 8 ++++++++ 8 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php index 06f5d4da..554ef3b0 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php @@ -32,8 +32,7 @@ public function getAuthHeader() { } public function isConnected() { - $connection = Mage::helper('zendesk')->getConnectionStatus(); - return $connection['success']; + return Mage::getStoreConfig('zendesk/general/authenticated'); } public function getTotals() { diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php index b9eb2ea5..db236a46 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php @@ -29,8 +29,9 @@ public function __construct() { protected function _prepareLayout() { // Check if we are on the main admin dashboard and, if so, whether we should be showing the grid // Note: an additional check in the template is needed, but this will prevent unnecessary API calls to Zendesk - if ( !$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard') ) - { + if (!Mage::getStoreConfig('zendesk/general/authenticated') + || (!$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard')) + ) { return parent::_prepareLayout(); } diff --git a/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php b/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php index aad1aed3..9e848317 100644 --- a/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php +++ b/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php @@ -7,8 +7,7 @@ public function all() $page = 1; $addresses = array(); - while ($page) { - $response = $this->_call('recipient_addresses.json?page=' . $page); + while ($page && !empty($response = $this->_call('recipient_addresses.json?page=' . $page))) { $addresses = array_merge($addresses, $response['recipient_addresses']); $page = is_null($response['next_page']) ? 0 : $page + 1; } diff --git a/src/app/code/community/Zendesk/Zendesk/Model/Observer.php b/src/app/code/community/Zendesk/Zendesk/Model/Observer.php index 449b301b..418f4f5b 100644 --- a/src/app/code/community/Zendesk/Zendesk/Model/Observer.php +++ b/src/app/code/community/Zendesk/Zendesk/Model/Observer.php @@ -114,6 +114,10 @@ public function saveConfig(Varien_Event_Observer $observer) } elseif (empty($zDomain)) { Mage::getModel('core/config')->saveConfig('zendesk/frontend_features/web_widget_code_snippet', ''); } + + // Save the connection status, used to check if it's okay to load pages that calls the API + $connectionStatus = Mage::helper('zendesk')->getConnectionStatus(); + Mage::getModel('core/config')->saveConfig('zendesk/general/authenticated', (int) $connectionStatus['success'], $scope, $scopeId); } public function addTicketButton(Varien_Event_Observer $event) diff --git a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php index 513f7591..7218af6c 100644 --- a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php +++ b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php @@ -691,8 +691,9 @@ protected function getMassActionResponse($response, $ids, $message = '%d out of private function _domainConfigured() { - $domain = Mage::getStoreConfig('zendesk/general/domain'); - if(!$domain) { + $authenticated = Mage::getStoreConfig('zendesk/general/authenticated'); + + if(!$authenticated) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('zendesk')->__('Please set up Zendesk connection.')); $this->_redirect('adminhtml/dashboard'); return false; diff --git a/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php b/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php new file mode 100644 index 00000000..da54fef1 --- /dev/null +++ b/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php @@ -0,0 +1,20 @@ +getConnectionStatus(); +$config = new Mage_Core_Model_Config(); +$config->saveConfig('zendesk/general/authenticated', (int) $connectionStatus['success'], 'default', 0); diff --git a/src/app/code/community/Zendesk/Zendesk/etc/config.xml b/src/app/code/community/Zendesk/Zendesk/etc/config.xml index 85304376..2f5c08e4 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/config.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/config.xml @@ -19,7 +19,7 @@ - 2.0.6 + 2.0.7 diff --git a/src/app/code/community/Zendesk/Zendesk/etc/system.xml b/src/app/code/community/Zendesk/Zendesk/etc/system.xml index 45ed7136..70a6489e 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/system.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/system.xml @@ -110,6 +110,14 @@ 1 + + hidden + adminhtml/system_config_source_yesno + 1 + 0 + 0 + 0 + From 423c851e8188d2a91ee67d5420f1a3c8a6653c46 Mon Sep 17 00:00:00 2001 From: Jose Consador Date: Tue, 23 Jun 2015 13:13:47 +0800 Subject: [PATCH 2/4] Revert "Save authenticated flag to the database." This reverts commit dd1ff9c66d7a26ce37ffb626f4a2daa489968cbb. --- .../Zendesk/Block/Adminhtml/Dashboard.php | 3 ++- .../Block/Adminhtml/Dashboard/Grids.php | 5 ++--- .../Zendesk/Model/Api/SupportAddresses.php | 3 ++- .../Zendesk/Zendesk/Model/Observer.php | 4 ---- .../Adminhtml/ZendeskController.php | 5 ++--- .../data-upgrade-2.0.6-2.0.7.php | 20 ------------------- .../community/Zendesk/Zendesk/etc/config.xml | 2 +- .../community/Zendesk/Zendesk/etc/system.xml | 8 -------- 8 files changed, 9 insertions(+), 41 deletions(-) delete mode 100644 src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php index 554ef3b0..06f5d4da 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php @@ -32,7 +32,8 @@ public function getAuthHeader() { } public function isConnected() { - return Mage::getStoreConfig('zendesk/general/authenticated'); + $connection = Mage::helper('zendesk')->getConnectionStatus(); + return $connection['success']; } public function getTotals() { diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php index db236a46..b9eb2ea5 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php @@ -29,9 +29,8 @@ public function __construct() { protected function _prepareLayout() { // Check if we are on the main admin dashboard and, if so, whether we should be showing the grid // Note: an additional check in the template is needed, but this will prevent unnecessary API calls to Zendesk - if (!Mage::getStoreConfig('zendesk/general/authenticated') - || (!$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard')) - ) { + if ( !$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard') ) + { return parent::_prepareLayout(); } diff --git a/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php b/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php index 9e848317..aad1aed3 100644 --- a/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php +++ b/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php @@ -7,7 +7,8 @@ public function all() $page = 1; $addresses = array(); - while ($page && !empty($response = $this->_call('recipient_addresses.json?page=' . $page))) { + while ($page) { + $response = $this->_call('recipient_addresses.json?page=' . $page); $addresses = array_merge($addresses, $response['recipient_addresses']); $page = is_null($response['next_page']) ? 0 : $page + 1; } diff --git a/src/app/code/community/Zendesk/Zendesk/Model/Observer.php b/src/app/code/community/Zendesk/Zendesk/Model/Observer.php index 418f4f5b..449b301b 100644 --- a/src/app/code/community/Zendesk/Zendesk/Model/Observer.php +++ b/src/app/code/community/Zendesk/Zendesk/Model/Observer.php @@ -114,10 +114,6 @@ public function saveConfig(Varien_Event_Observer $observer) } elseif (empty($zDomain)) { Mage::getModel('core/config')->saveConfig('zendesk/frontend_features/web_widget_code_snippet', ''); } - - // Save the connection status, used to check if it's okay to load pages that calls the API - $connectionStatus = Mage::helper('zendesk')->getConnectionStatus(); - Mage::getModel('core/config')->saveConfig('zendesk/general/authenticated', (int) $connectionStatus['success'], $scope, $scopeId); } public function addTicketButton(Varien_Event_Observer $event) diff --git a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php index 7218af6c..513f7591 100644 --- a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php +++ b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php @@ -691,9 +691,8 @@ protected function getMassActionResponse($response, $ids, $message = '%d out of private function _domainConfigured() { - $authenticated = Mage::getStoreConfig('zendesk/general/authenticated'); - - if(!$authenticated) { + $domain = Mage::getStoreConfig('zendesk/general/domain'); + if(!$domain) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('zendesk')->__('Please set up Zendesk connection.')); $this->_redirect('adminhtml/dashboard'); return false; diff --git a/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php b/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php deleted file mode 100644 index da54fef1..00000000 --- a/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php +++ /dev/null @@ -1,20 +0,0 @@ -getConnectionStatus(); -$config = new Mage_Core_Model_Config(); -$config->saveConfig('zendesk/general/authenticated', (int) $connectionStatus['success'], 'default', 0); diff --git a/src/app/code/community/Zendesk/Zendesk/etc/config.xml b/src/app/code/community/Zendesk/Zendesk/etc/config.xml index 2f5c08e4..85304376 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/config.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/config.xml @@ -19,7 +19,7 @@ - 2.0.7 + 2.0.6 diff --git a/src/app/code/community/Zendesk/Zendesk/etc/system.xml b/src/app/code/community/Zendesk/Zendesk/etc/system.xml index 70a6489e..45ed7136 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/system.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/system.xml @@ -110,14 +110,6 @@ 1 - - hidden - adminhtml/system_config_source_yesno - 1 - 0 - 0 - 0 - From e4a38fbaacc94e547b9ad50d62fee4933b53b627 Mon Sep 17 00:00:00 2001 From: Jose Consador Date: Tue, 23 Jun 2015 13:16:22 +0800 Subject: [PATCH 3/4] Revert "Revert "Save authenticated flag to the database."" This reverts commit 423c851e8188d2a91ee67d5420f1a3c8a6653c46. --- .../Zendesk/Block/Adminhtml/Dashboard.php | 3 +-- .../Block/Adminhtml/Dashboard/Grids.php | 5 +++-- .../Zendesk/Model/Api/SupportAddresses.php | 3 +-- .../Zendesk/Zendesk/Model/Observer.php | 4 ++++ .../Adminhtml/ZendeskController.php | 5 +++-- .../data-upgrade-2.0.6-2.0.7.php | 20 +++++++++++++++++++ .../community/Zendesk/Zendesk/etc/config.xml | 2 +- .../community/Zendesk/Zendesk/etc/system.xml | 8 ++++++++ 8 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php index 06f5d4da..554ef3b0 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php @@ -32,8 +32,7 @@ public function getAuthHeader() { } public function isConnected() { - $connection = Mage::helper('zendesk')->getConnectionStatus(); - return $connection['success']; + return Mage::getStoreConfig('zendesk/general/authenticated'); } public function getTotals() { diff --git a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php index b9eb2ea5..db236a46 100644 --- a/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php +++ b/src/app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php @@ -29,8 +29,9 @@ public function __construct() { protected function _prepareLayout() { // Check if we are on the main admin dashboard and, if so, whether we should be showing the grid // Note: an additional check in the template is needed, but this will prevent unnecessary API calls to Zendesk - if ( !$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard') ) - { + if (!Mage::getStoreConfig('zendesk/general/authenticated') + || (!$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard')) + ) { return parent::_prepareLayout(); } diff --git a/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php b/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php index aad1aed3..9e848317 100644 --- a/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php +++ b/src/app/code/community/Zendesk/Zendesk/Model/Api/SupportAddresses.php @@ -7,8 +7,7 @@ public function all() $page = 1; $addresses = array(); - while ($page) { - $response = $this->_call('recipient_addresses.json?page=' . $page); + while ($page && !empty($response = $this->_call('recipient_addresses.json?page=' . $page))) { $addresses = array_merge($addresses, $response['recipient_addresses']); $page = is_null($response['next_page']) ? 0 : $page + 1; } diff --git a/src/app/code/community/Zendesk/Zendesk/Model/Observer.php b/src/app/code/community/Zendesk/Zendesk/Model/Observer.php index 449b301b..418f4f5b 100644 --- a/src/app/code/community/Zendesk/Zendesk/Model/Observer.php +++ b/src/app/code/community/Zendesk/Zendesk/Model/Observer.php @@ -114,6 +114,10 @@ public function saveConfig(Varien_Event_Observer $observer) } elseif (empty($zDomain)) { Mage::getModel('core/config')->saveConfig('zendesk/frontend_features/web_widget_code_snippet', ''); } + + // Save the connection status, used to check if it's okay to load pages that calls the API + $connectionStatus = Mage::helper('zendesk')->getConnectionStatus(); + Mage::getModel('core/config')->saveConfig('zendesk/general/authenticated', (int) $connectionStatus['success'], $scope, $scopeId); } public function addTicketButton(Varien_Event_Observer $event) diff --git a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php index 513f7591..7218af6c 100644 --- a/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php +++ b/src/app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php @@ -691,8 +691,9 @@ protected function getMassActionResponse($response, $ids, $message = '%d out of private function _domainConfigured() { - $domain = Mage::getStoreConfig('zendesk/general/domain'); - if(!$domain) { + $authenticated = Mage::getStoreConfig('zendesk/general/authenticated'); + + if(!$authenticated) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('zendesk')->__('Please set up Zendesk connection.')); $this->_redirect('adminhtml/dashboard'); return false; diff --git a/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php b/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php new file mode 100644 index 00000000..da54fef1 --- /dev/null +++ b/src/app/code/community/Zendesk/Zendesk/data/zendesk_setup/data-upgrade-2.0.6-2.0.7.php @@ -0,0 +1,20 @@ +getConnectionStatus(); +$config = new Mage_Core_Model_Config(); +$config->saveConfig('zendesk/general/authenticated', (int) $connectionStatus['success'], 'default', 0); diff --git a/src/app/code/community/Zendesk/Zendesk/etc/config.xml b/src/app/code/community/Zendesk/Zendesk/etc/config.xml index 85304376..2f5c08e4 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/config.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/config.xml @@ -19,7 +19,7 @@ - 2.0.6 + 2.0.7 diff --git a/src/app/code/community/Zendesk/Zendesk/etc/system.xml b/src/app/code/community/Zendesk/Zendesk/etc/system.xml index 45ed7136..70a6489e 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/system.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/system.xml @@ -110,6 +110,14 @@ 1 + + hidden + adminhtml/system_config_source_yesno + 1 + 0 + 0 + 0 + From 2544395ef8b291b686316f5056a043c1d6b3b723 Mon Sep 17 00:00:00 2001 From: Jose Consador Date: Tue, 23 Jun 2015 13:18:15 +0800 Subject: [PATCH 4/4] remove version bump --- src/app/code/community/Zendesk/Zendesk/etc/config.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/code/community/Zendesk/Zendesk/etc/config.xml b/src/app/code/community/Zendesk/Zendesk/etc/config.xml index 2f5c08e4..85304376 100644 --- a/src/app/code/community/Zendesk/Zendesk/etc/config.xml +++ b/src/app/code/community/Zendesk/Zendesk/etc/config.xml @@ -19,7 +19,7 @@ - 2.0.7 + 2.0.6