public void hideAnonymous(UserDao userDao, Set<Integer> hideSet) throws SQLException, UserNotFoundException { if (comment != null) { User commentAuthor = userDao.getUserCached(comment.getUserid()); if (commentAuthor.isAnonymousScore()) { hideNode(hideSet); } } if (comment == null || !hideSet.contains(comment.getId())) { for (CommentNode child : childs) { child.hideAnonymous(userDao, hideSet); } } }
public SearchItem( SolrDocument doc, UserDao userDao, MsgbaseDao msgbaseDao, LorCodeService lorCodeService, boolean secure) { msgid = (String) doc.getFieldValue("id"); title = (String) doc.getFieldValue("title"); topicTitle = (String) doc.getFieldValue("topic_title"); int userid = (Integer) doc.getFieldValue("user_id"); Date postdate_dt = (Date) doc.getFieldValue("postdate"); postdate = new Timestamp(postdate_dt.getTime()); topic = (Integer) doc.getFieldValue("topic_id"); section = (String) doc.getFieldValue("section"); if (!"wiki".equals(section)) { virtualWiki = null; MessageText messageText = msgbaseDao.getMessageText(Integer.valueOf(msgid)); String rawMessage = messageText.getText(); if (messageText.isLorcode()) { message = lorCodeService.parseComment(rawMessage, secure); } else { message = rawMessage; } } else { // Wiki id like <virtual_wiki>-<topic_id> String[] msgIds = msgid.split("-"); if (msgIds.length != 2) { throw new RuntimeException("Invalid wiki ID"); } String content = msgbaseDao.getMessageTextFromWiki(Integer.valueOf(msgIds[1])); String msg = StringUtil.escapeHtml(content.substring(0, Math.min(1300, content.length()))); if (Math.min(1300, content.length()) == 1300) { message = msg + "..."; } else { message = msg; } virtualWiki = msgIds[0]; } try { user = userDao.getUserCached(userid); } catch (UserNotFoundException e) { throw new RuntimeException(e); } }
public List<TrackerItem> getTrackAll( TrackerFilterEnum filter, User currentUser, Date startDate, int topics, int offset, final int messagesInPage) { MapSqlParameterSource parameter = new MapSqlParameterSource(); parameter.addValue("interval", startDate); parameter.addValue("topics", topics); parameter.addValue("offset", offset); String partIgnored; if (currentUser != null) { partIgnored = queryPartIgnored + queryPartTagIgnored; parameter.addValue("userid", currentUser.getId()); } else { partIgnored = ""; } String partFilter; switch (filter) { case ALL: partFilter = ""; break; case NOTALKS: partFilter = queryPartNoTalks; break; case MAIN: partFilter = queryPartMain; break; case TECH: partFilter = queryPartTech; break; default: partFilter = ""; } boolean showUncommited = currentUser != null && (currentUser.isModerator() || currentUser.isCorrector()); String partUncommited = showUncommited ? "" : noUncommited; String query; query = String.format( queryTrackerMain, partUncommited, partIgnored, partFilter, partUncommited, partIgnored, partFilter); SqlRowSet resultSet = jdbcTemplate.queryForRowSet(query, parameter); List<TrackerItem> res = new ArrayList<>(topics); while (resultSet.next()) { User author = userDao.getUserCached(resultSet.getInt("author")); int msgid = resultSet.getInt("id"); Timestamp lastmod = resultSet.getTimestamp("lastmod"); int stat1 = resultSet.getInt("stat1"); int groupId = resultSet.getInt("gid"); String groupTitle = resultSet.getString("gtitle"); String title = StringUtil.makeTitle(resultSet.getString("title")); int cid = resultSet.getInt("cid"); User lastCommentBy; try { int id = resultSet.getInt("last_comment_by"); if (id != 0) { lastCommentBy = userDao.getUserCached(id); } else { lastCommentBy = null; } } catch (UserNotFoundException e) { throw new RuntimeException(e); } boolean resolved = resultSet.getBoolean("resolved"); int section = resultSet.getInt("section"); String groupUrlName = resultSet.getString("urlname"); Timestamp postdate = resultSet.getTimestamp("postdate"); boolean uncommited = resultSet.getBoolean("smod") && !resultSet.getBoolean("moderate"); int pages = Topic.getPageCount(stat1, messagesInPage); ImmutableList<String> tags; tags = topicTagService.getTagsForTitle(msgid); res.add( new TrackerItem( author, msgid, lastmod, stat1, groupId, groupTitle, title, cid, lastCommentBy, resolved, section, groupUrlName, postdate, uncommited, pages, tags)); } return res; }