1 25 26 package com.j2biz.blogunity.web.actions.my; 27 28 import java.util.Iterator ; 29 import java.util.List ; 30 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 34 import com.j2biz.blogunity.dao.BlogDAO; 35 import com.j2biz.blogunity.dao.UserDAO; 36 import com.j2biz.blogunity.exception.BlogunityException; 37 import com.j2biz.blogunity.i18n.I18N; 38 import com.j2biz.blogunity.i18n.I18NStatusFactory; 39 import com.j2biz.blogunity.pojo.Blog; 40 import com.j2biz.blogunity.pojo.User; 41 import com.j2biz.blogunity.web.IActionResult; 42 43 50 public class DeleteUserExecAction extends MyAbstractAction { 51 52 58 public IActionResult execute(HttpServletRequest request, HttpServletResponse response) 59 throws BlogunityException { 60 61 String id = request.getParameter("id"); 62 63 if (!user.isAdministrator()) 64 throw new BlogunityException(I18NStatusFactory 65 .create(I18N.ERRORS.USER_NOT_AUTHORIZED_FOR_EXECUTION)); 66 67 68 UserDAO userDAO = new UserDAO(); 69 BlogDAO blogDAO = new BlogDAO(); 70 71 User u = userDAO.getUserByID(Long.parseLong(id)); 72 if (u == null) 73 throw new BlogunityException(I18NStatusFactory.create(I18N.ERRORS.NOT_FOUND_BY_ID, 74 new String []{"user", id})); 75 76 if (u.isAdministrator()) 77 throw new BlogunityException(I18NStatusFactory 78 .create(I18N.ERRORS.UNABLE_TO_DELETE_ADMINISTRATOR)); 79 80 82 for (Iterator i = u.getContributedBlogs().iterator(); i.hasNext();) { 85 Blog b = (Blog) i.next(); 86 b.getContributors().remove(u); 87 blogDAO.updateBlog(b); 88 } 89 90 for (Iterator i = u.getWaitingForAcceptanceBlogs().iterator(); i.hasNext();) { 93 Blog b = (Blog) i.next(); 94 b.getWaitingForAcceptanceUsers().remove(u); 95 blogDAO.updateBlog(b); 96 } 97 98 List friendsOfList = userDAO.getFriendOfList(u); 101 for (Iterator i = friendsOfList.iterator(); i.hasNext();) { 102 User friendOfUser = (User) i.next(); 103 friendOfUser.getFriends().remove(u); 104 userDAO.updateUser(friendOfUser); 105 } 106 107 userDAO.deleteUser(u); 109 110 navigationStack.pop(); 111 return navigationStack.peek(); 112 } 113 114 } | Popular Tags |