KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > j2biz > blogunity > web > actions > my > DeleteUserExecAction


1 /*
2  * $Id: DeleteUserExecAction.java,v 1.2 2005/01/17 21:35:43 michelson Exp $
3  *
4  * Copyright (c) 2004 j2biz Group, http://www.j2biz.com
5  * Koeln / Duesseldorf , Germany
6  *
7  * @author Max Kalina
8  *
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  */

25
26 package com.j2biz.blogunity.web.actions.my;
27
28 import java.util.Iterator JavaDoc;
29 import java.util.List JavaDoc;
30
31 import javax.servlet.http.HttpServletRequest JavaDoc;
32 import javax.servlet.http.HttpServletResponse JavaDoc;
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 /**
44  * @author michelson
45  * @version $$
46  * @since 0.1
47  *
48  *
49  */

50 public class DeleteUserExecAction extends MyAbstractAction {
51
52     /*
53      * (non-Javadoc)
54      *
55      * @see com.j2biz.blogunity.web.actions.AbstractAction#execute(javax.servlet.http.HttpServletRequest,
56      * javax.servlet.http.HttpServletResponse)
57      */

58     public IActionResult execute(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
59             throws BlogunityException {
60
61         String JavaDoc 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 JavaDoc[]{"user", id}));
75
76         if (u.isAdministrator())
77                 throw new BlogunityException(I18NStatusFactory
78                         .create(I18N.ERRORS.UNABLE_TO_DELETE_ADMINISTRATOR));
79
80         // deleting user.
81

82         // 1. remove user from all contributed blogs
83
// FIXME optimize this code!
84
for (Iterator JavaDoc i = u.getContributedBlogs().iterator(); i.hasNext();) {
85             Blog b = (Blog) i.next();
86             b.getContributors().remove(u);
87             blogDAO.updateBlog(b);
88         }
89
90         // 2. remove user from all waiting4acceptance blogs
91
// FIXME optimize this code!
92
for (Iterator JavaDoc i = u.getWaitingForAcceptanceBlogs().iterator(); i.hasNext();) {
93             Blog b = (Blog) i.next();
94             b.getWaitingForAcceptanceUsers().remove(u);
95             blogDAO.updateBlog(b);
96         }
97
98         // 3. remove user from friends
99
// FIXME optimize this code!
100
List JavaDoc friendsOfList = userDAO.getFriendOfList(u);
101         for (Iterator JavaDoc i = friendsOfList.iterator(); i.hasNext();) {
102             User friendOfUser = (User) i.next();
103             friendOfUser.getFriends().remove(u);
104             userDAO.updateUser(friendOfUser);
105         }
106
107         // 4. and now remove user itself
108
userDAO.deleteUser(u);
109
110         navigationStack.pop();
111         return navigationStack.peek();
112     }
113
114 }
Popular Tags