[-] BO : fixed bug #PSCFV-8285 - module tab listing permission

This commit is contained in:
vAugagneur
2013-03-18 14:54:04 +01:00
parent e549207b8d
commit 734c5a7c8f
2 changed files with 31 additions and 5 deletions
+13 -1
View File
@@ -1514,6 +1514,7 @@ class AdminControllerCore extends Controller
public function renderModulesList() public function renderModulesList()
{ {
if ($this->getModulesList($this->filter_modules_list)) if ($this->getModulesList($this->filter_modules_list))
{ {
$helper = new Helper(); $helper = new Helper();
@@ -2214,7 +2215,18 @@ class AdminControllerCore extends Controller
$this->modules_list = array(); $this->modules_list = array();
foreach($all_modules as $module) foreach($all_modules as $module)
{ {
if (in_array($module->name, $filter_modules_list)) $perm = true;
if ($module->id)
$perm &= Module::getPermissionStatic($module->id, 'configure');
else
{
$id_admin_module = Tab::getIdFromClassName('AdminModules');
$access = Profile::getProfileAccess($this->context->employee->id_profile, $id_admin_module);
if (!$access['edit'])
$perm &= false;
}
if (in_array($module->name, $filter_modules_list) && $perm)
{ {
$this->fillModuleData($module, 'select'); $this->fillModuleData($module, 'select');
$this->modules_list[] = $module; $this->modules_list[] = $module;
+17 -3
View File
@@ -250,11 +250,25 @@ class AdminModulesControllerCore extends AdminController
{ {
if (in_array($module->name, $tab_modules_list)) if (in_array($module->name, $tab_modules_list))
{ {
$this->fillModuleData($module, 'select', $back); $perm = true;
if ($module->id) if ($module->id)
$modules_list['installed'][] = $module; $perm &= Module::getPermissionStatic($module->id, 'configure');
else else
$modules_list['not_installed'][] = $module; {
$id_admin_module = Tab::getIdFromClassName('AdminModules');
$access = Profile::getProfileAccess($this->context->employee->id_profile, $id_admin_module);
if (!$access['edit'])
$perm &= false;
}
if ($perm)
{
$this->fillModuleData($module, 'select', $back);
if ($module->id)
$modules_list['installed'][] = $module;
else
$modules_list['not_installed'][] = $module;
}
} }
} }
} }