KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > ui > authoring > struts > actions > ReferersAction


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.authoring.struts.actions;
20
21 import java.util.List JavaDoc;
22
23 import javax.servlet.ServletException JavaDoc;
24 import javax.servlet.http.HttpServletRequest JavaDoc;
25 import javax.servlet.http.HttpServletResponse JavaDoc;
26
27 import org.apache.commons.logging.Log;
28 import org.apache.commons.logging.LogFactory;
29 import org.apache.struts.action.ActionError;
30 import org.apache.struts.action.ActionErrors;
31 import org.apache.struts.action.ActionForm;
32 import org.apache.struts.action.ActionForward;
33 import org.apache.struts.action.ActionMapping;
34 import org.apache.struts.action.ActionMessage;
35 import org.apache.struts.action.ActionMessages;
36 import org.apache.struts.actions.DispatchAction;
37 import org.apache.roller.model.RefererManager;
38 import org.apache.roller.model.RollerFactory;
39 import org.apache.roller.pojos.RefererData;
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.util.cache.CacheManager;
45
46 /**
47  * Display today's referers.
48  * @struts.action name="refererForm" path="/roller-ui/authoring/referers"
49  * scope="session" parameter="method"
50  *
51  * @struts.action-forward name="referers.page" path=".referers"
52  */

53 public class ReferersAction extends DispatchAction
54 {
55     private static Log mLogger =
56         LogFactory.getFactory().getInstance(ReferersAction.class);
57
58     public ActionForward unspecified(
59         ActionMapping mapping,
60         ActionForm actionForm,
61         HttpServletRequest JavaDoc request,
62         HttpServletResponse JavaDoc response)
63         throws Exception JavaDoc
64     {
65         return view(mapping, actionForm, request, response);
66     }
67
68     /**
69      * execute
70      */

71     public ActionForward view(
72         ActionMapping mapping, ActionForm form,
73         HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res)
74         throws Exception JavaDoc
75     {
76         ActionForward forward = mapping.findForward("referers.page");
77         RollerRequest rreq = RollerRequest.getRollerRequest(req);
78         RollerSession rollerSession = RollerSession.getRollerSession(req);
79         RefererManager refmgr = RollerFactory.getRoller().getRefererManager();
80         try
81         {
82             if (rreq.getWebsite() != null
83                  && rollerSession.isUserAuthorizedToAuthor(rreq.getWebsite()) )
84             {
85                 BasePageModel pageModel = new BasePageModel(
86                         "referers.todaysReferers", req, res, mapping);
87                 req.setAttribute("model", pageModel);
88                 req.setAttribute("pageHits",
89                     new Integer JavaDoc(refmgr.getDayHits(rreq.getWebsite())));
90
91                 req.setAttribute("totalHits",
92                     new Integer JavaDoc(refmgr.getTotalHits(rreq.getWebsite())));
93
94                 List JavaDoc refs = refmgr.getTodaysReferers(rreq.getWebsite());
95                 req.setAttribute("referers",refs);
96             }
97         }
98         catch (Exception JavaDoc e)
99         {
100             mLogger.error("ERROR in action",e);
101             throw new ServletException JavaDoc(e);
102         }
103
104         return forward;
105     }
106
107     public ActionForward reset(
108         ActionMapping mapping, ActionForm form,
109         HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res)
110         throws Exception JavaDoc
111     {
112         this.servlet.log("ReferersAction.reset()");
113         RollerRequest rreq = RollerRequest.getRollerRequest(req);
114         RollerSession rollerSession = RollerSession.getRollerSession(req);
115         try
116         {
117             if (rreq.getWebsite() != null
118                   && rollerSession.isUserAuthorizedToAuthor(rreq.getWebsite()) )
119             {
120                 RefererManager refmgr = RollerFactory.getRoller().getRefererManager();
121                 WebsiteData website = rreq.getWebsite();
122                 refmgr.clearReferrers(website);
123                 RollerFactory.getRoller().flush();
124                 
125                 CacheManager.invalidate(website);
126             }
127             this.servlet.log("ReferersAction.reset(): don't have permission");
128         }
129         catch (Exception JavaDoc e)
130         {
131             mLogger.error("ERROR in action",e);
132             throw new ServletException JavaDoc(e);
133         }
134         return view(mapping, form, req, res);
135     }
136
137     public ActionForward delete(
138             ActionMapping mapping, ActionForm form,
139             HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res)
140         throws Exception JavaDoc
141     {
142         //this.servlet.log("ReferersAction.delete()");
143
RollerRequest rreq = RollerRequest.getRollerRequest(req);
144         RollerSession rollerSession = RollerSession.getRollerSession(req);
145         try
146         {
147             if (rreq.getWebsite() != null
148                  && rollerSession.isUserAuthorizedToAuthor(rreq.getWebsite()) )
149             {
150                 RefererManager refmgr = RollerFactory.getRoller().getRefererManager();
151                 WebsiteData website = rreq.getWebsite();
152                 
153                 RefererData referer = null;
154                 String JavaDoc[] deleteIds = req.getParameterValues("id");
155                 if (deleteIds != null)
156                 {
157                     for (int i=0; i<deleteIds.length; i++)
158                     {
159                         referer = refmgr.getReferer(deleteIds[i]);
160                         refmgr.removeReferer(referer);
161                     }
162                     RollerFactory.getRoller().flush();
163                     
164                     CacheManager.invalidate(website);
165                     
166                     ActionMessages messages = new ActionMessages();
167                     messages.add(null, new ActionMessage("referers.deletedReferers"));
168                     saveMessages(req, messages);
169                 }
170                 else
171                 {
172                     ActionErrors errors = new ActionErrors();
173                     errors.add(null, new ActionError("referers.noReferersSpecified"));
174                     saveErrors(req, errors);
175                 }
176             }
177             //this.servlet.log("ReferersAction.delete(): don't have permission");
178
}
179         catch (Exception JavaDoc e)
180         {
181             mLogger.error("ERROR in action",e);
182             throw new ServletException JavaDoc(e);
183         }
184         return view(mapping, form, req, res);
185     }
186 }
187
Popular Tags