[-] BO : fixed bug #PSCFV-9809 - carrier wizard tab access fix
This commit is contained in:
1 parent
4185026880
commit
3814a8c735
2 files changed
+66
-54
No files matched your search
@@ -45,7 +45,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
|
|
||||||
parent::__construct();
|
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()
|
public function setMedia()
|
||||||
@@ -95,11 +95,12 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$this->initWizard();
|
$this->initWizard();
|
||||||
|
|
||||||
if (Tools::getValue('id_carrier') && $this->wizard_access['edit'])
|
if (Tools::getValue('id_carrier') && $this->tabAccess['edit'])
|
||||||
$carrier = $this->loadObject();
|
$carrier = $this->loadObject();
|
||||||
elseif ($this->wizard_access['add'])
|
elseif ($this->tabAccess['add'])
|
||||||
$carrier = new Carrier();
|
$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.');
|
$this->errors[] = Tools::displayError('You do not have permission to use this wizard.');
|
||||||
return ;
|
return ;
|
||||||
@@ -312,50 +313,6 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
$this->getTplRangesVarsAndValues($carrier, $tpl_vars, $fields_value);
|
$this->getTplRangesVarsAndValues($carrier, $tpl_vars, $fields_value);
|
||||||
return $this->renderGenericForm(array('form' => $this->fields_form), $fields_value, $tpl_vars);
|
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)
|
public function renderStepFour($carrier)
|
||||||
{
|
{
|
||||||
@@ -445,6 +402,50 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
return $this->context->smarty->fetch('controllers/carrier_wizard/summary.tpl');
|
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())
|
public function renderGenericForm($fields_form, $fields_value, $tpl_vars = array())
|
||||||
{
|
{
|
||||||
@@ -512,7 +513,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
|
|
||||||
public function ajaxProcessChangeRanges()
|
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.');
|
$this->errors[] = Tools::displayError('You do not have permission to use this wizard.');
|
||||||
return;
|
return;
|
||||||
@@ -540,7 +541,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
$step_number = (int)Tools::getValue('step_number');
|
$step_number = (int)Tools::getValue('step_number');
|
||||||
$return = array('has_error' => false);
|
$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.');
|
$this->errors[] = Tools::displayError('You do not have permission to use this wizard.');
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -567,7 +568,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
|
|
||||||
public function processRanges($id_carrier)
|
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.');
|
$this->errors[] = Tools::displayError('You do not have permission to use this wizard.');
|
||||||
return;
|
return;
|
||||||
@@ -624,7 +625,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
|
|
||||||
public function ajaxProcessUploadLogo()
|
public function ajaxProcessUploadLogo()
|
||||||
{
|
{
|
||||||
if (!$this->wizard_access['edit'])
|
if (!$this->tabAccess['edit'])
|
||||||
die('<return result="error" message="'.Tools::displayError('You do not have permission to use this wizard.').'" />');
|
die('<return result="error" message="'.Tools::displayError('You do not have permission to use this wizard.').'" />');
|
||||||
|
|
||||||
$allowedExtensions = array('jpeg', 'gif', 'png', 'jpg');
|
$allowedExtensions = array('jpeg', 'gif', 'png', 'jpg');
|
||||||
@@ -651,7 +652,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$return = array('has_error' => false);
|
$return = array('has_error' => false);
|
||||||
|
|
||||||
if (!$this->wizard_access['edit'])
|
if (!$this->tabAccess['edit'])
|
||||||
$return = array(
|
$return = array(
|
||||||
'has_error' => true,
|
'has_error' => true,
|
||||||
$return['errors'][] = Tools::displayError('You do not have permission to use this wizard.')
|
$return['errors'][] = Tools::displayError('You do not have permission to use this wizard.')
|
||||||
|
|||||||
@@ -681,7 +681,18 @@ class AdminCarriersControllerCore extends AdminController
|
|||||||
|
|
||||||
public function displayEditLink($token = null, $id, $name = null)
|
public function displayEditLink($token = null, $id, $name = null)
|
||||||
{
|
{
|
||||||
return '<a href="'.$this->context->link->getAdminLink('AdminCarrierWizard').'&id_carrier='.(int)$id.'"><img src="../img/admin/edit.gif"/></a>';
|
if ($this->tabAccess['edit'] == 1)
|
||||||
|
return '<a href="'.$this->context->link->getAdminLink('AdminCarrierWizard').'&id_carrier='.(int)$id.'"><img src="../img/admin/edit.gif"/></a>';
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function displayDeleteLink($token = null, $id, $name = null)
|
||||||
|
{
|
||||||
|
if ($this->tabAccess['delete'] == 1)
|
||||||
|
return '<a href="'.$this->context->link->getAdminLink('AdminCarriers').'&id_carrier='.(int)$id.'&deletecarrier=1"><img src="../img/admin/delete.gif"/></a>';
|
||||||
|
else
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user