Exemplo n.º 1
0
 private function mark_active_itemsPermissionWith(&$arr, SJB_SubAdminAcl $acl, $subAdminSID)
 {
     if (empty($arr)) {
         return array();
     }
     foreach ($arr as $key => $items) {
         $arr[$key]['active'] = false;
         foreach ($items as $item_key => $item) {
             $allowed = false;
             if (is_array($item['perm_label'])) {
                 foreach ($item['perm_label'] as $permLabel) {
                     if ($acl->isAllowed($permLabel, $subAdminSID, 'subadmin')) {
                         $allowed = true;
                         break;
                     }
                 }
             } else {
                 // check permission for subadmins
                 if ($acl->isAllowed($item['perm_label'], $subAdminSID, 'subadmin')) {
                     $allowed = true;
                 }
             }
             if (!$allowed) {
                 // remove menu from menu list
                 unset($arr[$key][$item_key]);
                 continue;
             }
             $arr[$key][$item_key]['active'] = false;
             $item['highlight'][] = $item['reference'];
             $this->removeSimilarHighlight($arr, $item, $key, $item_key);
         }
         $arr[$key]['id'] = str_replace(' ', '_', $key);
         if (empty($arr[$key]) || count($arr[$key]) == 2) {
             unset($arr[$key]);
         }
     }
     return $arr;
 }