KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * $Id: AddContributorToCommunityBlogAction.java,v 1.6 2005/01/17 21:35:45 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 javax.servlet.http.HttpServletRequest JavaDoc;
29 import javax.servlet.http.HttpServletResponse JavaDoc;
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 /**
44  *
45  * @author michelson
46  * @version $$
47  * @since 0.1
48  *
49  *
50  */

51 public class AddContributorToCommunityBlogAction extends MyAbstractAction {
52
53     private static final IActionResult ADD_ERROR_FORWARD = ActionResultFactory
54             .buildForward("/jsp/my/listCommunityBlogMembers.jsp");
55
56     /*
57      * (non-Javadoc)
58      *
59      * @see com.j2biz.blogunity.web.actions.AbstractAction#execute(javax.servlet.http.HttpServletRequest,
60      * javax.servlet.http.HttpServletResponse)
61      */

62     public IActionResult execute(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
63             throws BlogunityException {
64
65         String JavaDoc nickname = request.getParameter("nickname");
66         String JavaDoc 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 JavaDoc 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 JavaDoc 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