KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mvnforum > admin > AdminModuleProcessor


1 /*
2  * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/AdminModuleProcessor.java,v 1.84 2006/04/14 17:05:25 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.84 $
5  * $Date: 2006/04/14 17:05:25 $
6  *
7  * ====================================================================
8  *
9  * Copyright (C) 2002-2006 by MyVietnam.net
10  *
11  * All copyright notices regarding mvnForum MUST remain
12  * intact in the scripts and in the outputted HTML.
13  * The "powered by" text/logo with a link back to
14  * http://www.mvnForum.com and http://www.MyVietnam.net in
15  * the footer of the pages MUST remain visible when the pages
16  * are viewed on the internet or intranet.
17  *
18  * This program is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 2 of the License, or
21  * any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
31  *
32  * Support can be obtained from support forums at:
33  * http://www.mvnForum.com/mvnforum/index
34  *
35  * Correspondence and Marketing Questions can be sent to:
36  * info at MyVietnam net
37  *
38  * @author: Minh Nguyen
39  * @author: Mai Nguyen
40  */

41 package com.mvnforum.admin;
42
43 import java.io.IOException JavaDoc;
44
45 import javax.servlet.ServletContext JavaDoc;
46 import javax.servlet.ServletException JavaDoc;
47 import javax.servlet.http.*;
48
49 import com.mvnforum.MVNForumConfig;
50 import com.mvnforum.auth.*;
51 import net.myvietnam.mvncore.exception.*;
52 import net.myvietnam.mvncore.filter.DisableHtmlTagFilter;
53 import net.myvietnam.mvncore.mvnframework.URLMap;
54 import net.myvietnam.mvncore.util.ParamUtil;
55 import net.myvietnam.mvncore.util.StringUtil;
56 import net.myvietnam.mvncore.web.GenericRequest;
57 import net.myvietnam.mvncore.web.GenericResponse;
58 import net.myvietnam.mvncore.web.impl.GenericRequestServletImpl;
59 import net.myvietnam.mvncore.web.impl.GenericResponseServletImpl;
60 import org.apache.commons.logging.Log;
61 import org.apache.commons.logging.LogFactory;
62
63 class AdminModuleProcessor {
64
65     private static Log log = LogFactory.getLog(AdminModuleProcessor.class);
66
67     private final String JavaDoc ORIGINAL_REQUEST = "mvnforum.admin.OriginalRequest";
68
69     private HttpServlet adminServlet = null;
70
71     private OnlineUserManager onlineUserManager = OnlineUserManager.getInstance();
72     private AdminModuleURLMapHandler urlMapHandler = new AdminModuleURLMapHandler();
73
74     private ForumWebHandler forumWebHandler = new ForumWebHandler();
75     private CategoryWebHandler categoryWebHandler = new CategoryWebHandler();
76     private MemberWebHandler memberWebHandler = new MemberWebHandler();
77     private WatchWebHandler watchWebHandler = new WatchWebHandler();
78     private GroupsWebHandler groupsWebHandler = new GroupsWebHandler();
79     private MemberGroupWebHandler memberGroupWebHandler = new MemberGroupWebHandler();
80     private GroupPermissionWebHandler groupPermissionWebHandler = new GroupPermissionWebHandler();
81     private GroupForumWebHandler groupForumWebHandler = new GroupForumWebHandler();
82     private RankWebHandler rankWebHandler = new RankWebHandler();
83     private MemberPermissionWebHandler memberPermissionWebHandler = new MemberPermissionWebHandler();
84     private MemberForumWebHandler memberForumWebHandler = new MemberForumWebHandler();
85     private GeneralAdminTasksWebHandler generalAdminTasksWebHandler = new GeneralAdminTasksWebHandler();
86     private ConfigurationWebHandler configurationWebHandler = new ConfigurationWebHandler();
87     //Netmama
88
private CompanyWebHandler companyWebHandler = new CompanyWebHandler();
89     private TutorWebHandler tutorWebHandler = new TutorWebHandler();
90     private MemberCompanyWebHandler memberCompanyWebHandler = new MemberCompanyWebHandler();
91
92     private ServletContext JavaDoc servletContext = null;
93
94     public AdminModuleProcessor(HttpServlet servlet) {
95         adminServlet = servlet;
96         servletContext = adminServlet.getServletContext();
97     }
98
99     /**
100      * This method handles the <code>requestURI</code>, and invokes the needed
101      * procedure (if the current user has the permission to perform that task).
102      * <br/>
103      * For example, URI <code>"/addforumprocess"</code> invokes the call to
104      * <code>forumWebHandler.processAdd(request);</code>.<br/>
105      * After the task is performed, we use the <code>AdminModuleURLMapHandler</code>
106      * to get the <code>responseURI</code>. That <code>responseURI</code> is
107      * returned back to the calling method, so it can decide and act on it
108      * (to redirect to that URI).<br/>
109      *
110      * @param request The <code>HttpServletRequest</code> object of this HTTP request.
111      * @param response The <code>HttpServletResponse</code> object of this HTTP request.
112      * @return responseURI to be redirected to. <b>It could be null</b>, which
113      * means we are not supposed to do any redirection, since the output was
114      * already commited (for example, if we sent (downloaded) a file to the user.
115      */

116     public String JavaDoc process(HttpServletRequest request, HttpServletResponse response)
117         throws IOException JavaDoc, ServletException JavaDoc {
118
119         long start = 0;
120         String JavaDoc requestURI = StringUtil.getEmptyStringIfNull(request.getPathInfo());
121         String JavaDoc responseURI = null;
122         OnlineUser onlineUser = null;
123         if (log.isDebugEnabled()) {
124             start = System.currentTimeMillis();
125             log.debug("AdminModuleProcessor : requestURI = " + requestURI);
126         }
127
128         GenericRequest genericRequest = new GenericRequestServletImpl(request, servletContext);
129         GenericResponse genericResponse = new GenericResponseServletImpl(response);
130
131         // step 1: some command need to be processed before we do the URI mapping (of the MODAL)
132
try {
133             // always check for Authenticated User
134
onlineUser = onlineUserManager.getOnlineUser(request);
135             onlineUser.updateNewMessageCount(false);
136
137             MVNForumPermission permission = onlineUser.getPermission();
138             if ( !requestURI.equals("") &&
139                  !requestURI.equals("/") &&
140                  !requestURI.equals("/login") &&
141                  !requestURI.equals("/loginprocess") &&
142                  !requestURI.equals("/logout")) {
143                 permission.ensureIsAuthenticated();
144                 if (onlineUser.getAuthenticationType() == OnlineUser.AUTHENTICATION_TYPE_COOKIE) {
145                     throw new AuthenticationException(NotLoginException.COOKIE_NOT_ALLOWED);
146                 }
147             }
148
149             if (requestURI.equals("/forummanagement")) {
150                 forumWebHandler.prepareForumManagement(genericRequest);
151             } else if (requestURI.equals("/editgroupforumpermission")) {
152                 groupForumWebHandler.prepareList(genericRequest);
153             } else if (requestURI.equals("/updategroupforumpermission")) {
154                 groupForumWebHandler.processUpdate(genericRequest);
155
156             } else if (requestURI.equals("/addforum")) {
157                 permission.ensureCanAddForum();
158             } else if (requestURI.equals("/addforumprocess")) {
159                 forumWebHandler.processAdd(genericRequest, genericResponse);
160             } else if (requestURI.equals("/deleteforum")) {
161                 forumWebHandler.prepareDelete(genericRequest);
162             } else if (requestURI.equals("/deleteforumprocess")) {
163                 forumWebHandler.processDelete(genericRequest);
164             } else if (requestURI.equals("/editforum")) {
165                 forumWebHandler.prepareEdit(genericRequest);
166             } else if (requestURI.equals("/updateforum")) {
167                 forumWebHandler.processUpdate(genericRequest, genericResponse);
168             } else if (requestURI.equals("/updateforumorder")) {
169                 forumWebHandler.processUpdateForumOrder(genericRequest);
170
171             } else if (requestURI.equals("/addcategory")) {
172                 permission.ensureCanAddCategory();
173             } else if (requestURI.equals("/addcategoryprocess")) {
174                 categoryWebHandler.processAdd(genericRequest, genericResponse);
175             } else if (requestURI.equals("/deletecategory")) {
176                 categoryWebHandler.prepareDelete(genericRequest);
177             } else if (requestURI.equals("/deletecategoryprocess")) {
178                 categoryWebHandler.processDelete(genericRequest);
179             } else if (requestURI.equals("/editcategory")) {
180                 categoryWebHandler.prepareEdit(genericRequest);
181             } else if (requestURI.equals("/updatecategory")) {
182                 categoryWebHandler.processUpdate(genericRequest, genericResponse);
183             } else if (requestURI.equals("/updatecategoryorder")) {
184                 categoryWebHandler.processUpdateCategoryOrder(genericRequest);
185
186             } else if (requestURI.equals("/rankmanagement")) {
187                 rankWebHandler.prepareList(genericRequest);
188             } else if (requestURI.equals("/editrank")) {
189                 rankWebHandler.prepareEdit(genericRequest);
190             } else if (requestURI.equals("/editrankprocess")) {
191                 rankWebHandler.processUpdate(genericRequest, genericResponse);
192             } else if (requestURI.equals("/addrankprocess")) {
193                 rankWebHandler.processAdd(genericRequest, genericResponse);
194             } else if (requestURI.equals("/deleterankprocess")) {
195                 rankWebHandler.processDelete(genericRequest);
196
197             } else if (requestURI.equals("/usermanagement")) {
198                 memberWebHandler.prepareShowUserManagement(genericRequest);
199             } else if (requestURI.equals("/permissionsummary")) {
200                 memberWebHandler.preparePermissionSummary(genericRequest);
201             } else if (requestURI.equals("/viewmemberpermissions")) {
202                 memberWebHandler.prepareViewPermission(genericRequest);
203             } else if (requestURI.equals("/deletenonactivatedmembers")) {
204                 memberWebHandler.prepareDeleteNonActivatedNoPostMembers(genericRequest);
205             } else if (requestURI.equals("/deletenonactivatedmembersprocess")) {
206                 memberWebHandler.processDeleteNonActivatedNoPostMembers(/*servletContext,*/ genericRequest);
207
208             } else if (requestURI.equals("/addmemberprocess")) {
209                 memberWebHandler.processAdd(genericRequest);
210             } else if (requestURI.equals("/changememberstatusprocess")) {
211                 memberWebHandler.processUpdateMemberStatus(genericRequest);
212             } else if (requestURI.equals("/viewmember")) {
213                 memberWebHandler.prepareView(genericRequest);
214             } else if (requestURI.equals("/editmember")) {
215                 memberWebHandler.prepareEdit(genericRequest);
216             } else if (requestURI.equals("/updatemember")) {
217                 memberWebHandler.processEdit(genericRequest, genericResponse);
218             } else if (requestURI.equals("/changepassword")) {
219                 memberWebHandler.prepareChangePassword(genericRequest);
220             } else if (requestURI.equals("/changepasswordprocess")) {
221                 memberWebHandler.processChangePassword(genericRequest);
222             } else if (requestURI.equals("/editmembertitle")) {
223                 memberWebHandler.prepareView(genericRequest);
224             } else if (requestURI.equals("/editmembertitleprocess")) {
225                 memberWebHandler.processUpdateMemberTitle(genericRequest, genericResponse);
226             } else if (requestURI.equals("/resetsignatureprocess")) {
227                 memberWebHandler.processResetMemberSignature(genericRequest);
228             } else if (requestURI.equals("/resetavatarprocess")) {
229                 memberWebHandler.processResetMemberAvatar(genericRequest);
230             } else if (requestURI.equals("/resetactivationprocess")) {
231                 memberWebHandler.processResetMemberActivation(genericRequest);
232
233             } else if (requestURI.equals("/deletewatch")) {
234                 watchWebHandler.processDelete_forMember(genericRequest);
235
236             } else if (requestURI.equals("/addgroupprocess")) {
237                 groupsWebHandler.processAdd(genericRequest, genericResponse);
238             } else if (requestURI.equals("/deletegroup")) {
239                 groupsWebHandler.prepareDelete(genericRequest);
240             } else if (requestURI.equals("/deletegroupprocess")) {
241                 groupsWebHandler.processDelete(genericRequest);
242             } else if (requestURI.equals("/groupmanagement")) {
243                 groupsWebHandler.prepareList(genericRequest);
244             } else if (requestURI.equals("/viewgroup")) {
245                 groupsWebHandler.prepareView(genericRequest);
246             } else if (requestURI.equals("/editgroupinfo")) {
247                 groupsWebHandler.prepareView(genericRequest);
248             } else if (requestURI.equals("/updategroupinfo")) {
249                 groupsWebHandler.processUpdate(genericRequest, genericResponse);
250             } else if (requestURI.equals("/editgroupowner")) {
251                 groupsWebHandler.prepareView(genericRequest);
252             } else if (requestURI.equals("/updategroupowner")) {
253                 groupsWebHandler.processUpdateGroupOwner(genericRequest);
254             } else if (requestURI.equals("/listmembergroup")) {
255                 memberGroupWebHandler.prepareList_inGroup_limit(genericRequest);
256             } else if (requestURI.equals("/addmembergroup")) {
257                 groupsWebHandler.prepareView(genericRequest);
258             } else if (requestURI.equals("/addmembergroupprocess")) {
259                 memberGroupWebHandler.processAdd(genericRequest);
260             } else if (requestURI.equals("/deletemembergroupprocess")) {
261                 memberGroupWebHandler.processDelete(genericRequest);
262             } else if (requestURI.equals("/editgrouppermission")) {
263                 groupPermissionWebHandler.prepareList(genericRequest);
264             } else if (requestURI.equals("/updategrouppermission")) {
265                 groupPermissionWebHandler.processUpdate(genericRequest);
266             } else if (requestURI.equals("/assignforumtogroup")) {
267                 groupForumWebHandler.prepareAssignForumToGroup(genericRequest);
268             } else if (requestURI.equals("/assigngrouptoforum")) {
269                 groupForumWebHandler.prepareAssignGroupToForum(genericRequest);
270             } else if (requestURI.equals("/assignforumtomember")) {
271                 memberForumWebHandler.prepareAssignForumToMember(genericRequest);
272             } else if (requestURI.equals("/assignmembertoforum")) {
273                 memberForumWebHandler.prepareAssignMemberToForum(genericRequest);
274             } else if (requestURI.equals("/editmemberforumpermission")) {
275                 memberForumWebHandler.prepareList(genericRequest);
276             } else if (requestURI.equals("/updatememberforumpermission")) {
277                 memberForumWebHandler.processUpdate(genericRequest);
278             } else if (requestURI.equals("/editmemberpermission")) {
279                 memberPermissionWebHandler.prepareListPermission(genericRequest);
280             } else if (requestURI.equals("/updatememberpermission")) {
281                 memberPermissionWebHandler.processUpdate(genericRequest);
282             } else if (requestURI.equals("/deletememberprocess")) {
283                 memberWebHandler.processDeleteMember(/*servletContext,*/ genericRequest);
284             } else if (requestURI.equals("/deletemember")) {
285                 memberWebHandler.prepareView(genericRequest);
286
287             } else if (requestURI.equals("/edittemplate")) {
288                 configurationWebHandler.prepareEditTemplate(genericRequest);
289             } else if (requestURI.equals("/updatetemplate")) {
290                 configurationWebHandler.processEditTemplate(genericRequest);
291
292             } else if (requestURI.equals("/viewlogsystem")) {
293                 generalAdminTasksWebHandler.prepareViewLogSystem(genericRequest);
294             } else if (requestURI.equals("/logframe")) {
295                 generalAdminTasksWebHandler.prepareLogFrame(genericRequest);
296             } else if (requestURI.equals("/backupsystemlog")) {
297                 generalAdminTasksWebHandler.backupSystemLog(genericRequest);
298             } else if (requestURI.equals("/listlogfiles")) {
299                 generalAdminTasksWebHandler.prepareListLogFiles(genericRequest);
300             } else if (requestURI.equals("/downloadlogfile")) {
301                 generalAdminTasksWebHandler.downloadLogFile(request, response);
302                 return null;//already commited some messages, no further process is needed
303
} else if (requestURI.equals("/deletelogfile")) {
304                 generalAdminTasksWebHandler.deleteLogFile(genericRequest);
305
306             } else if (requestURI.equals("/configindex")) {
307                 configurationWebHandler.prepareConfigMVNCore(genericRequest);
308                 configurationWebHandler.prepareConfigMVNForum(genericRequest);
309             } else if (requestURI.equals("/configstepone")) {
310                 configurationWebHandler.prepareConfigMVNForum(genericRequest);
311             } else if (requestURI.equals("/configsteponeprocess")) {
312                 configurationWebHandler.updateConfigStepOne(genericRequest);
313             } else if (requestURI.equals("/configsteptwo")) {
314                 configurationWebHandler.prepareConfigMVNForum(genericRequest);
315             } else if (requestURI.equals("/configsteptwoprocess")) {
316                 configurationWebHandler.updateConfigStepTwo(genericRequest);
317             } else if (requestURI.equals("/configmvncore")) {
318                 configurationWebHandler.prepareConfigMVNCore(genericRequest);
319             } else if (requestURI.equals("/configmvncoreprocess")) {
320                 configurationWebHandler.updateConfigMVNCore(genericRequest);
321             } else if (requestURI.equals("/configurlpattern")) {
322                 configurationWebHandler.prepareConfigMVNForum(genericRequest);
323             } else if (requestURI.equals("/configurlpatternprocess")) {
324                 configurationWebHandler.updateUrlPattern(genericRequest);
325             } else if (requestURI.equals("/configbackupprocess")) {
326                 configurationWebHandler.configBackupProcess(genericRequest);
327             } else if (requestURI.equals("/commitconfigs")) {
328                 configurationWebHandler.commitConfig(genericRequest);
329
330             } else if (requestURI.equals("/restoreconfigbackupprocess")) {
331                 //configurationWebHandler.configBackupProcess();
332

333             } else if (requestURI.equals("/index")) {
334                 generalAdminTasksWebHandler.prepareShowIndex(genericRequest);
335             } else if (requestURI.equals("/changemode")) {
336                 generalAdminTasksWebHandler.changeShowUserArea(genericRequest);
337             } else if (requestURI.equals("/clearcache")) {
338                 generalAdminTasksWebHandler.processClearCache(genericRequest);
339             } else if (requestURI.equals("/testsystem")) {
340                 generalAdminTasksWebHandler.prepareTestSystem(genericRequest);
341             } else if (requestURI.equals("/importexport")) {
342                 generalAdminTasksWebHandler.prepareImportExport(request);
343             } else if (requestURI.equals("/importprocess")) {
344                 generalAdminTasksWebHandler.importXmlZip(request, response);
345                 return null;//already commited some messages, no further process is needed
346
} else if (requestURI.equals("/exportprocess")) {
347                 generalAdminTasksWebHandler.exportXmlZip(request);
348             } else if (requestURI.equals("/getexportprocess")) {
349                 generalAdminTasksWebHandler.getExportXmlZip(request, response);
350                 return null;//already commited file or raised exception, no further process is needed
351
} else if (requestURI.equals("/deleteexportprocess")) {
352                 generalAdminTasksWebHandler.deleteExportXmlZip(genericRequest);
353             } else if (requestURI.equals("/misctasks")) {
354                 generalAdminTasksWebHandler.prepareRebuildIndex(genericRequest);
355             } else if (requestURI.equals("/rebuildindex")) {
356                 generalAdminTasksWebHandler.rebuildIndex(genericRequest);
357             } else if (requestURI.equals("/sendmail")) {
358                 generalAdminTasksWebHandler.prepareSendMail(genericRequest);
359             } else if (requestURI.equals("/sendmailprocess")) {
360                 generalAdminTasksWebHandler.sendMail(genericRequest);
361             } else if (requestURI.equals("/sendactivatemailtoallprocess")) {
362                 generalAdminTasksWebHandler.sendActivateMailToAll(genericRequest);
363
364             } else if (requestURI.equals("/companymanagement")) {
365                 companyWebHandler.prepareShowCompanyManagement(genericRequest);
366             } else if (requestURI.equals("/addcompanyprocess")) {
367                 companyWebHandler.processAdd(genericRequest);
368             } else if (requestURI.equals("/viewcompany")) {
369                 companyWebHandler.prepareView(genericRequest);
370             } else if (requestURI.equals("/searchcompany")) {
371                 //companyWebHandler.prepareShowCompanyManagement(request);
372
} else if (requestURI.equals("/searchcompanyprocess")) {
373                 companyWebHandler.processSearch(genericRequest);
374
375             } else if (requestURI.equals("/searchmember")) {
376                 //memberWebHandler.prepareShowCompanyManagement(request);
377
} else if (requestURI.equals("/searchmemberprocess")) {
378                 memberWebHandler.processSearch(genericRequest);
379
380             } else if (requestURI.equals("/editcompanyinfo")) {
381                 companyWebHandler.prepareView(genericRequest);
382             } else if (requestURI.equals("/editcompanyinfoprocess")) {
383                 companyWebHandler.processUpdateCompanyInfo(genericRequest);
384             } else if (requestURI.equals("/changecompanylogo")) {
385                 companyWebHandler.prepare(genericRequest);
386             } else if (requestURI.equals("/changecompanylogoprocess")) {
387                 companyWebHandler.processChangeLogo(servletContext, genericRequest);
388             } else if (requestURI.equals("/changecompanycss")) {
389                 companyWebHandler.prepare(genericRequest);
390             } else if (requestURI.equals("/changecompanycssprocess")) {
391                 companyWebHandler.processChangeCss(servletContext, genericRequest);
392             } else if (requestURI.equals("/deletecompany")) {
393                 companyWebHandler.prepare(genericRequest);
394             } else if (requestURI.equals("/deletecompanyprocess")) {
395                 companyWebHandler.processDelete(servletContext, genericRequest);
396
397             } else if (requestURI.equals("/addmembercompany")) {
398                 companyWebHandler.prepareView(genericRequest);
399             } else if (requestURI.equals("/addmembercompanyprocess")) {
400                 memberCompanyWebHandler.processAdd(genericRequest);
401             } else if (requestURI.equals("/deletemembercompanyprocess")) {
402                 memberCompanyWebHandler.processDelete(genericRequest);
403             } else if (requestURI.equals("/listmembercompany")) {
404                 memberCompanyWebHandler.prepareList_inCompany_limit(genericRequest);
405             //Netmama
406
} else if (requestURI.equals("/tutormanagement")) {
407                 tutorWebHandler.prepareShowTutorManagement(genericRequest);
408             } else if (requestURI.equals("/assignusertotutor")) {
409                 tutorWebHandler.prepareAssignUserToTutor(genericRequest);
410             } else if (requestURI.equals("/updatemembertutorprocess")) {
411                 tutorWebHandler.updateMemberTutorProcess(genericRequest);
412             } else if (requestURI.equals("/updatememberexpireprocess")) {
413                 memberWebHandler.updateMemberExpireProcess(genericRequest);
414             } else if (requestURI.equals("/listuseroftutor")) {
415                 tutorWebHandler.prepareListUserToTutor(genericRequest);
416             } else if (requestURI.equals("/listuserexpire")) {
417                 memberWebHandler.prepareListUserExpire(genericRequest);
418
419             } else if (requestURI.equals("/loginprocess")) {
420                 onlineUserManager.processLogin(request, response);
421                 String JavaDoc originalRequest = ParamUtil.getAttribute(request.getSession(), ORIGINAL_REQUEST);
422                 if (originalRequest.length() > 0) {
423                     request.getSession().setAttribute(ORIGINAL_REQUEST, "");
424                     responseURI = originalRequest;
425                 }
426             } else if (requestURI.equals("/logout")) {
427                 onlineUserManager.logout(request, response);
428                 request.setAttribute("Reason", "Logout successfully.");
429             }
430         } catch (AuthenticationException e) {
431             // make sure not from login page, we cannot set original request in this situation
432
// and also make sure the request's method must be GET to set the OriginalRequest
433
boolean shouldSaveOriginalRequest = (e.getReason()==NotLoginException.NOT_LOGIN) || (e.getReason()==NotLoginException.NOT_ENOUGH_RIGHTS);
434             if (shouldSaveOriginalRequest && (request.getMethod().equals("GET"))) {
435                 String JavaDoc url = AdminModuleConfig.getUrlPattern() + requestURI + "?" + StringUtil.getEmptyStringIfNull(request.getQueryString());
436                 request.getSession().setAttribute(ORIGINAL_REQUEST, url);
437             }
438
439             requestURI = MVNForumConfig.getRedirectLoginURL();//"/login";
440
request.setAttribute("Reason", e.getReasonExplanation(onlineUser.getLocale()));
441         } catch (Exception JavaDoc e) {
442             if (e instanceof BadInputException) {
443                 // we log in WARN level if this is the exception from user input
444
log.warn("Exception in AdminModuleProcessor e = " + e.getMessage(), e);
445             } else if (e instanceof AssertionException) {
446                 // we log in FATAL level if this is the exception from user input
447
log.fatal("Exception in AdminModuleProcessor e = " + e.getMessage(), e);
448             } else {
449                 log.error("Exception in AdminModuleProcessor [" + e.getClass().getName() + "] : " + e.getMessage(), e);
450             }
451             requestURI = "/error";
452
453
454             String JavaDoc message = StringUtil.getEmptyStringIfNull(e.getMessage());
455             if (message.length() == 0) {
456                 message = e.getClass().getName();
457             }
458             request.getSession().setAttribute("ErrorMessage", DisableHtmlTagFilter.filter(message));
459         }
460
461         // step 2: map the URI (of the CONTROLLER)
462
try {
463             // See note in the ActionInUserModule
464
Action action = new ActionInAdminModule(request, requestURI);// may throw MissingURLMapEntryException
465
onlineUserManager.updateOnlineUserAction(request, action);
466             if (responseURI == null) {
467                 URLMap map = urlMapHandler.getMap(requestURI, request);
468                 responseURI = map.getResponse();
469             }
470         } catch (MissingURLMapEntryException e) {
471             log.error("Exception: missing urlmap entry in admin module: requestURI = " + requestURI);
472             responseURI = "/mvnplugin/mvnforum/admin/error.jsp";
473             request.getSession().setAttribute("ErrorMessage", DisableHtmlTagFilter.filter(e.getMessage()));
474         } catch (Exception JavaDoc e) {
475             // This will catch AuthenticationException, AssertionException, DatabaseException
476
// in the method onlineUserManager.updateOnlineUserAction(request, action)
477
responseURI = "/mvnplugin/mvnforum/admin/error.jsp";
478             request.getSession().setAttribute("ErrorMessage", DisableHtmlTagFilter.filter(e.getMessage()));
479         }
480
481         // step 3: return URI to be forwarded to or dispatched to the VIEW
482
if (log.isDebugEnabled()) {
483             long duration = System.currentTimeMillis() - start;
484             log.debug("AdminModuleProcessor : responseURI = " + responseURI + ". (" + duration + " ms)");
485         }
486
487         return responseURI;
488         /* Redirection is moved into ForumAdminServlet.process() method.
489         if (responseURI.endsWith(".jsp")) {
490             servletContext.getRequestDispatcher(responseURI).forward(request, response);
491         } else {
492             response.sendRedirect(ParamUtil.getContextPath() + responseURI);
493         }
494          */

495     }// process method
496
}
497
Popular Tags