From 3814a8c7351b0e0380edffb1c7acfaae536ed742 Mon Sep 17 00:00:00 2001 From: Vincent Augagneur Date: Tue, 30 Jul 2013 10:40:13 +0200 Subject: [PATCH] [-] BO : fixed bug #PSCFV-9809 - carrier wizard tab access fix --- .../admin/AdminCarrierWizardController.php | 107 +++++++++--------- controllers/admin/AdminCarriersController.php | 13 ++- 2 files changed, 66 insertions(+), 54 deletions(-) diff --git a/controllers/admin/AdminCarrierWizardController.php b/controllers/admin/AdminCarrierWizardController.php index 9081acad2..54d221c3b 100644 --- a/controllers/admin/AdminCarrierWizardController.php +++ b/controllers/admin/AdminCarrierWizardController.php @@ -45,7 +45,7 @@ class AdminCarrierWizardControllerCore extends AdminController parent::__construct(); - $this->wizard_access = Profile::getProfileAccess($this->context->employee->id_profile, Tab::getIdFromClassName('AdminCarrierWizard')); + $this->tabAccess = Profile::getProfileAccess($this->context->employee->id_profile, Tab::getIdFromClassName('AdminCarriers')); } public function setMedia() @@ -95,11 +95,12 @@ class AdminCarrierWizardControllerCore extends AdminController { $this->initWizard(); - if (Tools::getValue('id_carrier') && $this->wizard_access['edit']) + if (Tools::getValue('id_carrier') && $this->tabAccess['edit']) $carrier = $this->loadObject(); - elseif ($this->wizard_access['add']) + elseif ($this->tabAccess['add']) $carrier = new Carrier(); - else + + if ((!$this->tabAccess['edit'] && Tools::getValue('id_carrier')) || (!$this->tabAccess['add'] && !Tools::getValue('id_carrier'))) { $this->errors[] = Tools::displayError('You do not have permission to use this wizard.'); return ; @@ -312,50 +313,6 @@ class AdminCarrierWizardControllerCore extends AdminController $this->getTplRangesVarsAndValues($carrier, $tpl_vars, $fields_value); return $this->renderGenericForm(array('form' => $this->fields_form), $fields_value, $tpl_vars); } - - protected function getTplRangesVarsAndValues($carrier, &$tpl_vars, &$fields_value) - { - $tpl_vars['zones'] = Zone::getZones(false); - $carrier_zones = $carrier->getZones(); - $carrier_zones_ids = array(); - if (is_array($carrier_zones)) - foreach ($carrier_zones as $carrier_zone) - $carrier_zones_ids[] = $carrier_zone['id_zone']; - - - $shipping_method = $carrier->getShippingMethod(); - if ($shipping_method == Carrier::SHIPPING_METHOD_FREE) - { - $range_table = array(); - $range_obj = $carrier->getRangeObject($carrier->shipping_method); - $price_by_range = array(); - } - else - { - $range_table = $carrier->getRangeTable(); - $range_obj = $carrier->getRangeObject(); - $price_by_range = Carrier::getDeliveryPriceByRanges($range_table, (int)$carrier->id); - } - - $zones = Zone::getZones(false); - foreach ($zones as $zone) - $fields_value['zones'][$zone['id_zone']] = Tools::getValue('zone_'.$zone['id_zone'], (in_array($zone['id_zone'], $carrier_zones_ids))); - - foreach ($price_by_range as $price) - $tpl_vars['price_by_range'][$price['id_'.$range_table]][$price['id_zone']] = $price['price']; - - $tmp_range = $range_obj->getRanges((int)$carrier->id); - $tpl_vars['ranges'] = array(); - foreach ($tmp_range as $id => $range) - { - $tpl_vars['ranges'][$range['id_'.$range_table]] = $range; - $tpl_vars['ranges'][$range['id_'.$range_table]]['id_range'] = $range['id_'.$range_table]; - } - - // init blank range - if (!count($tpl_vars['ranges'])) - $tpl_vars['ranges'][] = array('id_range' => -1, 'delimiter1' => 0, 'delimiter2' => 100000); - } public function renderStepFour($carrier) { @@ -445,6 +402,50 @@ class AdminCarrierWizardControllerCore extends AdminController { return $this->context->smarty->fetch('controllers/carrier_wizard/summary.tpl'); } + + protected function getTplRangesVarsAndValues($carrier, &$tpl_vars, &$fields_value) + { + $tpl_vars['zones'] = Zone::getZones(false); + $carrier_zones = $carrier->getZones(); + $carrier_zones_ids = array(); + if (is_array($carrier_zones)) + foreach ($carrier_zones as $carrier_zone) + $carrier_zones_ids[] = $carrier_zone['id_zone']; + + + $shipping_method = $carrier->getShippingMethod(); + if ($shipping_method == Carrier::SHIPPING_METHOD_FREE) + { + $range_table = array(); + $range_obj = $carrier->getRangeObject($carrier->shipping_method); + $price_by_range = array(); + } + else + { + $range_table = $carrier->getRangeTable(); + $range_obj = $carrier->getRangeObject(); + $price_by_range = Carrier::getDeliveryPriceByRanges($range_table, (int)$carrier->id); + } + + $zones = Zone::getZones(false); + foreach ($zones as $zone) + $fields_value['zones'][$zone['id_zone']] = Tools::getValue('zone_'.$zone['id_zone'], (in_array($zone['id_zone'], $carrier_zones_ids))); + + foreach ($price_by_range as $price) + $tpl_vars['price_by_range'][$price['id_'.$range_table]][$price['id_zone']] = $price['price']; + + $tmp_range = $range_obj->getRanges((int)$carrier->id); + $tpl_vars['ranges'] = array(); + foreach ($tmp_range as $id => $range) + { + $tpl_vars['ranges'][$range['id_'.$range_table]] = $range; + $tpl_vars['ranges'][$range['id_'.$range_table]]['id_range'] = $range['id_'.$range_table]; + } + + // init blank range + if (!count($tpl_vars['ranges'])) + $tpl_vars['ranges'][] = array('id_range' => -1, 'delimiter1' => 0, 'delimiter2' => 100000); + } public function renderGenericForm($fields_form, $fields_value, $tpl_vars = array()) { @@ -512,7 +513,7 @@ class AdminCarrierWizardControllerCore extends AdminController public function ajaxProcessChangeRanges() { - if ((Validate::isLoadedObject($this->object) && !$this->wizard_access['edit']) || !$this->wizard_access['add']) + if ((Validate::isLoadedObject($this->object) && !$this->tabAccess['edit']) || !$this->tabAccess['add']) { $this->errors[] = Tools::displayError('You do not have permission to use this wizard.'); return; @@ -540,7 +541,7 @@ class AdminCarrierWizardControllerCore extends AdminController $step_number = (int)Tools::getValue('step_number'); $return = array('has_error' => false); - if (!$this->wizard_access['edit']) + if (!$this->tabAccess['edit']) $this->errors[] = Tools::displayError('You do not have permission to use this wizard.'); else { @@ -567,7 +568,7 @@ class AdminCarrierWizardControllerCore extends AdminController public function processRanges($id_carrier) { - if (!$this->wizard_access['edit'] || !$this->wizard_access['add']) + if (!$this->tabAccess['edit'] || !$this->tabAccess['add']) { $this->errors[] = Tools::displayError('You do not have permission to use this wizard.'); return; @@ -624,7 +625,7 @@ class AdminCarrierWizardControllerCore extends AdminController public function ajaxProcessUploadLogo() { - if (!$this->wizard_access['edit']) + if (!$this->tabAccess['edit']) die(''); $allowedExtensions = array('jpeg', 'gif', 'png', 'jpg'); @@ -651,7 +652,7 @@ class AdminCarrierWizardControllerCore extends AdminController { $return = array('has_error' => false); - if (!$this->wizard_access['edit']) + if (!$this->tabAccess['edit']) $return = array( 'has_error' => true, $return['errors'][] = Tools::displayError('You do not have permission to use this wizard.') diff --git a/controllers/admin/AdminCarriersController.php b/controllers/admin/AdminCarriersController.php index cd98c934d..b2120da5f 100644 --- a/controllers/admin/AdminCarriersController.php +++ b/controllers/admin/AdminCarriersController.php @@ -681,7 +681,18 @@ class AdminCarriersControllerCore extends AdminController public function displayEditLink($token = null, $id, $name = null) { - return ''; + if ($this->tabAccess['edit'] == 1) + return ''; + else + return; + } + + public function displayDeleteLink($token = null, $id, $name = null) + { + if ($this->tabAccess['delete'] == 1) + return ''; + else + return; } }