diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 13e0aa09a..f797cb5c8 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -1514,6 +1514,7 @@ class AdminControllerCore extends Controller public function renderModulesList() { + if ($this->getModulesList($this->filter_modules_list)) { $helper = new Helper(); @@ -2214,7 +2215,18 @@ class AdminControllerCore extends Controller $this->modules_list = array(); 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->modules_list[] = $module; diff --git a/controllers/admin/AdminModulesController.php b/controllers/admin/AdminModulesController.php index ec5e2c42f..dcb8e6cb3 100644 --- a/controllers/admin/AdminModulesController.php +++ b/controllers/admin/AdminModulesController.php @@ -250,11 +250,25 @@ class AdminModulesControllerCore extends AdminController { if (in_array($module->name, $tab_modules_list)) { - $this->fillModuleData($module, 'select', $back); + $perm = true; if ($module->id) - $modules_list['installed'][] = $module; + $perm &= Module::getPermissionStatic($module->id, 'configure'); 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; + + } } } } @@ -781,7 +795,7 @@ class AdminModulesControllerCore extends AdminController // Call appropriate module callback if (!isset($ppmReturn)) $this->postProcessCallback(); - + if ($back = Tools::getValue('back')) Tools::redirectAdmin($back); }