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; }