KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > ajax > ListAccountsAction


1 package com.sslexplorer.ajax;
2
3 import javax.servlet.http.HttpServletRequest JavaDoc;
4 import javax.servlet.http.HttpServletResponse JavaDoc;
5
6 import org.ajaxtags.helpers.AjaxXmlBuilder;
7 import org.apache.struts.action.ActionForm;
8 import org.apache.struts.action.ActionMapping;
9
10 import com.sslexplorer.boot.ContextHolder;
11 import com.sslexplorer.boot.Util;
12 import com.sslexplorer.core.UserDatabaseManager;
13 import com.sslexplorer.install.forms.SelectUserDatabaseForm;
14 import com.sslexplorer.security.Constants;
15 import com.sslexplorer.security.LogonControllerFactory;
16 import com.sslexplorer.security.SessionInfo;
17 import com.sslexplorer.security.User;
18 import com.sslexplorer.security.UserDatabase;
19 import com.sslexplorer.wizard.AbstractWizardSequence;
20
21 /**
22  * Implementation of {@link com.sslexplorer.ajax.AbstractAjaxXMLAction} that
23  * returns an XML document containing a list of user accounts.
24  * <p>
25  * Two request parameters are supported. First, the optional <b>account</b>
26  * which may contain a search string and secondly <b>maxRows</b> which is an
27  * integer, defaults to 10 and determines the maximum number of results to
28  * return. If <b>account</b> is not supplied, all accounts (up to the specified
29  * maximum rows) will be returned.
30  *
31  * @author Brett Smith <a HREF="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
32  */

33
34 public class ListAccountsAction extends AbstractAjaxXMLAction {
35
36     /*
37      * (non-Javadoc)
38      *
39      * @see com.sslexplorer.ajax.AbstractAjaxAction#onAjaxRequest(org.apache.struts.action.ActionMapping,
40      * org.apache.struts.action.ActionForm,
41      * javax.servlet.http.HttpServletRequest,
42      * javax.servlet.http.HttpServletResponse,
43      * org.ajaxtags.helpers.AjaxXmlBuilder)
44      */

45     protected void onAjaxRequest(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response,
46                     AjaxXmlBuilder builder) throws Exception JavaDoc {
47         
48         
49         UserDatabase udb;
50         if(ContextHolder.getContext().isSetupMode()) {
51             AbstractWizardSequence seq = (AbstractWizardSequence)request.getSession().getAttribute(Constants.WIZARD_SEQUENCE);
52             if(seq == null) {
53                 log.error("No wizard sequence, cannot list users.");
54                 return;
55             }
56             udb = (UserDatabase)seq.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE_INSTANCE, null);
57             if(udb == null) {
58                 log.error("No user database, cannot list users.");
59                 return;
60             }
61         }
62         else {
63             SessionInfo sessionInfo =
64                 LogonControllerFactory.getInstance().getSessionInfo(request);
65             if(sessionInfo == null) {
66                 throw new Exception JavaDoc("No authenticated.");
67             }
68             udb = UserDatabaseManager.getInstance().getUserDatabase(LogonControllerFactory.getInstance().getUser(request).getRealm());
69         }
70         String JavaDoc account = request.getParameter("account");
71         String JavaDoc maxRows = request.getParameter("maxRows");
72         int rows = Integer.parseInt(maxRows == null ? "10" : maxRows);
73         String JavaDoc filter = ( account == null ? "" : Util.urlDecode(account) ) + "*";
74         User[] users = udb.listAllUsers(filter);
75         for(int i = 0 ; i < users.length && i < rows; i++) {
76             String JavaDoc s = Util.encodeHTML(users[i].getPrincipalName());
77             builder.addItem(s, s);
78         }
79     }
80
81     /*
82      * (non-Javadoc)
83      *
84      * @see com.sslexplorer.core.actions.CoreAction#getNavigationContext(org.apache.struts.action.ActionMapping,
85      * org.apache.struts.action.ActionForm,
86      * javax.servlet.http.HttpServletRequest,
87      * javax.servlet.http.HttpServletResponse)
88      */

89     public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
90         return SessionInfo.MANAGEMENT_CONSOLE_CONTEXT | SessionInfo.SETUP_CONSOLE_CONTEXT;
91     }
92
93 }
94
Popular Tags