示例#1
0
 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']);
             }
         }
     }
 }