public static List<WikiNode> getNodes( List<WikiNode> nodes, String[] hiddenNodes, PermissionChecker permissionChecker) { nodes = ListUtil.copy(nodes); Arrays.sort(hiddenNodes); Iterator<WikiNode> itr = nodes.iterator(); while (itr.hasNext()) { WikiNode node = itr.next(); if (!(Arrays.binarySearch(hiddenNodes, node.getName()) < 0) || !WikiNodePermission.contains(permissionChecker, node, ActionKeys.VIEW)) { itr.remove(); } } return nodes; }
public static WikiNode getFirstNode(PortletRequest portletRequest) throws PortalException, SystemException { ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); long groupId = themeDisplay.getScopeGroupId(); PermissionChecker permissionChecker = themeDisplay.getPermissionChecker(); List<WikiNode> nodes = WikiNodeLocalServiceUtil.getNodes(groupId); PortletPreferences preferences = portletRequest.getPreferences(); String[] visibleNodeNames = StringUtil.split(preferences.getValue("visibleNodes", null)); nodes = orderNodes(nodes, visibleNodeNames); String[] hiddenNodes = StringUtil.split(preferences.getValue("hiddenNodes", StringPool.BLANK)); Arrays.sort(hiddenNodes); for (WikiNode node : nodes) { if ((Arrays.binarySearch(hiddenNodes, node.getName()) < 0) && (WikiNodePermission.contains(permissionChecker, node, ActionKeys.VIEW))) { return node; } } return null; }