function filterModuleList(&$moduleList, $by_value = true) { global $aclModuleList, $current_user; if (is_admin($current_user)) { return; } $actions = ACLAction::getUserActions($current_user->id, false); $compList = array(); if ($by_value) { foreach ($moduleList as $key => $value) { $compList[$value] = $key; } } else { $compList =& $moduleList; } foreach ($actions as $action_name => $action) { if (!empty($action['module'])) { $aclModuleList[$action_name] = $action_name; if (isset($compList[$action_name])) { if ($action['module']['access']['aclaccess'] < ACL_ALLOW_ENABLED) { if ($by_value) { unset($moduleList[$compList[$action_name]]); } else { unset($moduleList[$action_name]); } } } } } if (isset($compList['Calendar']) && !(ACLController::checkModuleAllowed('Calls', $actions) || ACLController::checkModuleAllowed('Meetings', $actions) || ACLController::checkModuleAllowed('Tasks', $actions))) { if ($by_value) { unset($moduleList[$compList['Calendar']]); } else { unset($moduleList['Calendar']); } if (isset($compList['Activities']) && !(ACLController::checkModuleAllowed('Notes', $actions) || ACLController::checkModuleAllowed('Notes', $actions))) { if ($by_value) { unset($moduleList[$compList['Activities']]); } else { unset($moduleList['Activities']); } } } }