return comment;
}
protected Comment createBlankComment(Blog blog, BlogEntry blogEntry, HttpServletRequest request) {
Comment comment = blogEntry.createComment("", "", "", "", "", "", request.getRemoteAddr());
// populate the author, email and website from one of :
// - the logged in user details
// - the "remember me" cookie
if (SecurityUtils.isUserAuthenticated()) {
PebbleUserDetails user = SecurityUtils.getUserDetails();
if (user != null) {
comment.setAuthor(user.getName());
comment.setEmail(user.getEmailAddress());
if (user.getWebsite() != null && !user.getWebsite().equals("")) {
comment.setWebsite(user.getWebsite());
} else {
comment.setWebsite(blogEntry.getBlog().getUrl() + "authors/" + user.getUsername() + "/");
}
comment.setAuthenticated(true);
}
} else {
try {
// is "remember me" set?
Cookie rememberMe = CookieUtils.getCookie(request.getCookies(), "rememberMe");
if (rememberMe != null) {
// remember me has been checked and we're not already previewing a comment
// so create a new comment as this will populate the author/email/website
Cookie author = CookieUtils.getCookie(request.getCookies(), "rememberMe.author");
if (author != null) {
comment.setAuthor(URLDecoder.decode(author.getValue(), blog.getCharacterEncoding()));
}
Cookie email = CookieUtils.getCookie(request.getCookies(), "rememberMe.email");
if (email != null) {
comment.setEmail(URLDecoder.decode(email.getValue(), blog.getCharacterEncoding()));
}
Cookie website = CookieUtils.getCookie(request.getCookies(), "rememberMe.website");
if (website != null) {
comment.setWebsite(URLDecoder.decode(website.getValue(), blog.getCharacterEncoding()));
}
}
} catch (UnsupportedEncodingException e) {
log.error("Exception encountered", e);
}
}
// are we replying to an existing comment?
String parentCommentId = request.getParameter("comment");
if (parentCommentId != null && parentCommentId.length() > 0) {
long parent = Long.parseLong(parentCommentId);
Comment parentComment = blogEntry.getComment(parent);
if (parentComment != null) {
comment.setParent(parentComment);
comment.setTitle(parentComment.getTitle());
}
}
return comment;
}