KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > ui > core > struts > actions > YourWebsitesAction


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. The ASF licenses this file to You
4  * under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License. For additional information regarding
15  * copyright in this work, please see the NOTICE file in the top level
16  * directory of this distribution.
17  */

18
19 package org.apache.roller.ui.core.struts.actions;
20
21 import java.util.ArrayList JavaDoc;
22 import java.util.List JavaDoc;
23 import javax.servlet.http.HttpServletRequest JavaDoc;
24 import javax.servlet.http.HttpServletResponse JavaDoc;
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27 import org.apache.struts.action.ActionForm;
28 import org.apache.struts.action.ActionForward;
29 import org.apache.struts.action.ActionMapping;
30 import org.apache.struts.action.ActionMessage;
31 import org.apache.struts.action.ActionMessages;
32 import org.apache.struts.actions.DispatchAction;
33 import org.apache.roller.RollerException;
34 import org.apache.roller.config.RollerConfig;
35 import org.apache.roller.model.Roller;
36 import org.apache.roller.model.RollerFactory;
37 import org.apache.roller.model.UserManager;
38 import org.apache.roller.pojos.PermissionsData;
39 import org.apache.roller.pojos.UserData;
40 import org.apache.roller.pojos.WebsiteData;
41 import org.apache.roller.ui.core.BasePageModel;
42 import org.apache.roller.ui.core.RollerRequest;
43 import org.apache.roller.ui.core.RollerSession;
44 import org.apache.roller.ui.authoring.struts.formbeans.YourWebsitesForm;
45 import org.apache.struts.action.ActionError;
46 import org.apache.struts.action.ActionErrors;
47
48
49 /**
50  * Allows user to view and pick from list of his/her websites.
51  *
52  * @struts.action path="/roller-ui/yourWebsites" name="yourWebsitesForm" parameter="method"
53  * @struts.action-forward name="yourWebsites.page" path=".YourWebsites"
54  */

55 public class YourWebsitesAction extends DispatchAction {
56     
57     private static Log mLogger = LogFactory.getLog(YourWebsitesAction.class);
58     
59     
60     /** If method param is not specified, use HTTP verb to pick method to call */
61     public ActionForward unspecified(
62             ActionMapping mapping,
63             ActionForm actionForm,
64             HttpServletRequest JavaDoc request,
65             HttpServletResponse JavaDoc response)
66             throws Exception JavaDoc {
67         if (request.getMethod().equals("GET")) {
68             return edit(mapping, actionForm, request, response);
69         }
70         return edit(mapping, actionForm, request, response);
71     }
72     
73     
74     public ActionForward edit(
75             ActionMapping mapping,
76             ActionForm actionForm,
77             HttpServletRequest JavaDoc request,
78             HttpServletResponse JavaDoc response)
79             throws Exception JavaDoc {
80         request.setAttribute("model",
81                 new YourWebsitesPageModel(request, response, mapping));
82         
83         ActionForward forward = mapping.findForward("yourWebsites.page");
84         return forward;
85     }
86     
87     
88     public ActionForward accept(
89             ActionMapping mapping,
90             ActionForm actionForm,
91             HttpServletRequest JavaDoc request,
92             HttpServletResponse JavaDoc response)
93             throws Exception JavaDoc {
94         
95         YourWebsitesForm form = (YourWebsitesForm)actionForm;
96         UserManager userMgr = RollerFactory.getRoller().getUserManager();
97         PermissionsData perms = userMgr.getPermissions(form.getInviteId());
98         if (perms != null) {
99             // TODO ROLLER_2.0: notify inviter that invitee has accepted invitation
100
// TODO EXCEPTIONS: better exception handling
101
perms.setPending(false);
102             userMgr.savePermissions(perms);
103             RollerFactory.getRoller().flush();
104
105             ActionMessages msgs = new ActionMessages();
106             msgs.add(null, new ActionMessage(
107                     "yourWebsites.accepted", perms.getWebsite().getHandle()));
108             saveMessages(request, msgs);
109         } else {
110             ActionErrors errs = new ActionErrors();
111             errs.add(null, new ActionError("yourWebsites.permNotFound"));
112             saveMessages(request, errs);
113         }
114         
115         request.setAttribute("model",
116                 new YourWebsitesPageModel(request, response, mapping));
117         ActionForward forward = mapping.findForward("yourWebsites.page");
118         return forward;
119     }
120     
121     
122     public ActionForward decline(
123             ActionMapping mapping,
124             ActionForm actionForm,
125             HttpServletRequest JavaDoc request,
126             HttpServletResponse JavaDoc response)
127             throws Exception JavaDoc {
128
129         YourWebsitesForm form = (YourWebsitesForm)actionForm;
130         UserManager userMgr = RollerFactory.getRoller().getUserManager();
131         PermissionsData perms = userMgr.getPermissions(form.getInviteId());
132         if (perms != null) {
133             // TODO ROLLER_2.0: notify inviter that invitee has declined invitation
134
// TODO EXCEPTIONS: better exception handling here
135
userMgr.removePermissions(perms);
136             RollerFactory.getRoller().flush();
137
138             ActionMessages msgs = new ActionMessages();
139             msgs.add(null, new ActionMessage(
140                     "yourWebsites.declined", perms.getWebsite().getHandle()));
141             saveMessages(request, msgs);
142         } else {
143             ActionErrors errs = new ActionErrors();
144             errs.add(null, new ActionError("yourWebsites.permNotFound"));
145             saveMessages(request, errs);
146         }
147         
148         request.setAttribute("model",
149                 new YourWebsitesPageModel(request, response, mapping));
150         ActionForward forward = mapping.findForward("yourWebsites.page");
151         return forward;
152     }
153     
154     
155     public ActionForward resign(
156             ActionMapping mapping,
157             ActionForm actionForm,
158             HttpServletRequest JavaDoc request,
159             HttpServletResponse JavaDoc response)
160             throws Exception JavaDoc {
161         YourWebsitesForm form = (YourWebsitesForm)actionForm;
162         
163         RollerSession rses = RollerSession.getRollerSession(request);
164         UserData user = rses.getAuthenticatedUser();
165         RollerRequest rreq = RollerRequest.getRollerRequest(request);
166         WebsiteData website = rreq.getWebsite();
167         
168         UserManager userMgr = RollerFactory.getRoller().getUserManager();
169         PermissionsData perms = userMgr.getPermissions(website, user);
170         
171         if (perms != null) {
172             // TODO ROLLER_2.0: notify website members that user has resigned
173
// TODO EXCEPTIONS: better exception handling
174
userMgr.removePermissions(perms);
175             RollerFactory.getRoller().flush();
176         }
177         
178         ActionMessages msgs = new ActionMessages();
179         msgs.add(null, new ActionMessage(
180                 "yourWebsites.resigned", perms.getWebsite().getHandle()));
181         saveMessages(request, msgs);
182         
183         request.setAttribute("model",
184                 new YourWebsitesPageModel(request, response, mapping));
185         ActionForward forward = mapping.findForward("yourWebsites.page");
186         return forward;
187     }
188     
189     
190     public static class YourWebsitesPageModel extends BasePageModel {
191         private boolean planetAggregatorEnabled = false;
192         private boolean groupBloggingEnabled = false;
193         private List JavaDoc permissions = new ArrayList JavaDoc();
194         private List JavaDoc pendings = new ArrayList JavaDoc();
195         private int userWeblogCount = 0;
196         
197         public YourWebsitesPageModel(HttpServletRequest JavaDoc request,
198                 HttpServletResponse JavaDoc response, ActionMapping mapping) throws RollerException {
199             super("yourWebsites.title", request, response, mapping);
200             Roller roller = RollerFactory.getRoller();
201             RollerSession rollerSession = RollerSession.getRollerSession(request);
202             UserData user = rollerSession.getAuthenticatedUser();
203             permissions = roller.getUserManager().getAllPermissions(user);
204             userWeblogCount = permissions.size();
205             pendings = roller.getUserManager().getPendingPermissions(user);
206             groupBloggingEnabled =
207                     RollerConfig.getBooleanProperty("groupblogging.enabled");
208             setPlanetAggregatorEnabled(RollerConfig.getBooleanProperty("planet.aggregator.enabled"));
209         }
210         public List JavaDoc getPermissions() {
211             return permissions;
212         }
213         public void setPermissions(List JavaDoc permissions) {
214             this.permissions = permissions;
215         }
216         public List JavaDoc getPendings() {
217             return pendings;
218         }
219         public void setPendings(List JavaDoc pendings) {
220             this.pendings = pendings;
221         }
222         
223         public boolean isGroupBloggingEnabled() {
224             return groupBloggingEnabled;
225         }
226         
227         public void setGroupBloggingEnabled(boolean groupBloggingEnabled) {
228             this.groupBloggingEnabled = groupBloggingEnabled;
229         }
230         
231         public boolean isPlanetAggregatorEnabled() {
232             return planetAggregatorEnabled;
233         }
234         
235         public void setPlanetAggregatorEnabled(boolean planetAggregatorEnabled) {
236             this.planetAggregatorEnabled = planetAggregatorEnabled;
237         }
238         
239         public int getUserWeblogCount() {
240             return userWeblogCount;
241         }
242         public void setUserWeblogCount(int count) {
243             userWeblogCount = count;
244         }
245     }
246     
247 }
248
Popular Tags