1 25 26 package com.j2biz.blogunity.web.actions.my; 27 28 import javax.servlet.http.HttpServletRequest ; 29 import javax.servlet.http.HttpServletResponse ; 30 31 import com.j2biz.blogunity.dao.BlogDAO; 32 import com.j2biz.blogunity.dao.UserDAO; 33 import com.j2biz.blogunity.exception.BlogunityException; 34 import com.j2biz.blogunity.i18n.I18N; 35 import com.j2biz.blogunity.i18n.I18NStatusFactory; 36 import com.j2biz.blogunity.pojo.Blog; 37 import com.j2biz.blogunity.pojo.User; 38 import com.j2biz.blogunity.web.ActionResultFactory; 39 import com.j2biz.blogunity.web.FormError; 40 import com.j2biz.blogunity.web.FormErrorList; 41 import com.j2biz.blogunity.web.IActionResult; 42 43 51 public class AddContributorToCommunityBlogAction extends MyAbstractAction { 52 53 private static final IActionResult ADD_ERROR_FORWARD = ActionResultFactory 54 .buildForward("/jsp/my/listCommunityBlogMembers.jsp"); 55 56 62 public IActionResult execute(HttpServletRequest request, HttpServletResponse response) 63 throws BlogunityException { 64 65 String nickname = request.getParameter("nickname"); 66 String blogid = request.getParameter("blogid"); 67 FormErrorList errors = new FormErrorList(); 68 69 BlogDAO blogDAO = new BlogDAO(); 70 UserDAO userDAO = new UserDAO(); 71 72 Blog b; 73 try { 74 b = blogDAO.getBlogByID(Long.parseLong(blogid)); 75 } catch (Exception e) { 76 b = null; 77 } 78 79 if (b == null) { throw new BlogunityException(I18NStatusFactory.create( 80 I18N.ERRORS.NOT_FOUND, "Blog")); } 81 82 if (b.getFounder().getId().longValue() != user.getId().longValue() 83 && !user.isAdministrator()) { throw new BlogunityException(I18NStatusFactory 84 .create(I18N.ERRORS.USER_NOT_AUTHORIZED_FOR_EXECUTION)); } 85 86 User u; 87 try { 88 u = userDAO.getUserByName(nickname); 89 } catch (Exception e) { 90 u = null; 91 } 92 93 if (u == null) { 94 errors.add(new FormError("nickname", "User '" + nickname + "' not found!")); 95 } else if (b.getContributors().contains(u)) { 96 errors 97 .add(new FormError("nickname", 98 "This user is already in the conbtributors-list!")); 99 } else if (b.getFounder().getId().longValue() == user.getId().longValue()) { 100 errors.add(new FormError("nickname", 101 "You can not contribute to this blog cause you are founder of this blog!")); 102 } 103 104 if (errors.size() > 0) { 105 request.setAttribute("newContributor", u); 106 request.setAttribute("blog", b); 107 request.setAttribute("errors", errors); 108 return ADD_ERROR_FORWARD; 109 } 110 111 u.getContributedBlogs().add(b); 112 userDAO.updateUser(user); 113 114 return ActionResultFactory.buildRedirect("/my/listCommunityBlogMembers?id=" + b.getId()); 115 116 } 117 118 } | Popular Tags |