public function buildModuleList(ControllerContext $controllerContext)
{
$modules = array();
foreach ($this->settings['modules'] as $module => $moduleConfiguration) {
if (!$this->isModuleEnabled($module)) {
continue;
}
if (isset($moduleConfiguration['privilegeTarget']) && !$this->privilegeManager->isPrivilegeTargetGranted($moduleConfiguration['privilegeTarget'])) {
continue;
}
$submodules = array();
if (isset($moduleConfiguration['submodules'])) {
foreach ($moduleConfiguration['submodules'] as $submodule => $submoduleConfiguration) {
if (!$this->isModuleEnabled($module . '/' . $submodule)) {
continue;
}
if (isset($submoduleConfiguration['privilegeTarget']) && !$this->privilegeManager->isPrivilegeTargetGranted($submoduleConfiguration['privilegeTarget'])) {
continue;
}
$submodules[] = $this->collectModuleData($controllerContext, $submodule, $submoduleConfiguration, $module . '/' . $submodule);
}
}
$modules[] = array_merge($this->collectModuleData($controllerContext, $module, $moduleConfiguration, $module), array('group' => $module, 'submodules' => $submodules));
}
return $modules;
}