KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > communicator > applications > webtalk > controller > DisplayDropCustomerAction


1 /*
2  * DisplayDropCustomerAction.java
3  *
4  */

5
6 package com.quikj.application.communicator.applications.webtalk.controller;
7
8 import java.sql.Connection JavaDoc;
9 import java.util.ArrayList JavaDoc;
10
11 import javax.servlet.http.HttpServletRequest JavaDoc;
12 import javax.servlet.http.HttpServletResponse JavaDoc;
13
14 import org.apache.struts.action.Action;
15 import org.apache.struts.action.ActionError;
16 import org.apache.struts.action.ActionErrors;
17 import org.apache.struts.action.ActionForm;
18 import org.apache.struts.action.ActionForward;
19 import org.apache.struts.action.ActionMapping;
20 import org.apache.struts.action.DynaActionForm;
21
22 import com.quikj.application.communicator.admin.controller.AdminConfig;
23 import com.quikj.application.communicator.admin.controller.LinkAttribute;
24 import com.quikj.application.communicator.admin.model.AccountElement;
25 import com.quikj.application.communicator.admin.model.AccountsTable;
26 import com.quikj.application.communicator.applications.webtalk.model.CannedMessageElement;
27 import com.quikj.application.communicator.applications.webtalk.model.CannedMessageTable;
28 import com.quikj.application.communicator.applications.webtalk.model.FeatureTable;
29 import com.quikj.application.communicator.applications.webtalk.model.GroupTable;
30 import com.quikj.application.communicator.applications.webtalk.model.UserTable;
31 import com.quikj.server.framework.AceLogger;
32 /**
33  *
34  * @author bhm
35  */

36 public class DisplayDropCustomerAction extends Action
37 {
38     
39     /** Creates a new instance of DisplayUserManagementAction */
40     public DisplayDropCustomerAction()
41     {
42     }
43     
44     public ActionForward execute(ActionMapping mapping,
45     ActionForm form,
46     HttpServletRequest JavaDoc request,
47     HttpServletResponse JavaDoc response)
48     {
49         ActionErrors errors = new ActionErrors();
50         
51         Connection JavaDoc c = (Connection JavaDoc)request.getSession().getAttribute("connection");
52         if (c == null)
53         {
54             errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.not.logged.in"));
55             saveErrors(request, errors);
56             
57             return mapping.findForward("logon");
58         }
59         
60         AccountElement element = (AccountElement)request.getSession().getAttribute("userInfo");
61         if (element.isAdminLevel() == false)
62         {
63             errors.add(ActionErrors.GLOBAL_ERROR,
64             new ActionError("error.insufficient.privilege"));
65             saveErrors(request, errors);
66             
67             return mapping.findForward("main_menu");
68         }
69         
70         String JavaDoc domain = (String JavaDoc)request.getAttribute("domain");
71         
72         ((DynaActionForm)form).set("domain", new String JavaDoc(domain));
73         
74         // query the data and present it to user
75

76         UserTable users = new UserTable();
77         users.setConnection(c);
78         
79         // get the list of operators
80
ArrayList JavaDoc operators = users.findMembersOnlyByGroupDomain(domain);
81         String JavaDoc operators_error = users.getErrorMessage();
82         
83         // get the list of group owners/features
84
ArrayList JavaDoc owners = users.findOwnersByGroupDomain(domain);
85         String JavaDoc owners_error = users.getErrorMessage();
86         
87         if ((operators == null) || (owners == null))
88         {
89             errors.add(ActionErrors.GLOBAL_ERROR,
90             new ActionError("error.customer.delete.finddata"));
91             
92             saveErrors(request, errors);
93             
94             // log the error(s)
95
String JavaDoc msg = "DisplayDropCustomerAction.execute()/by-" + element.getName()
96             + ": Error finding data in domain " + domain + ": ";
97             
98             if (operators == null)
99             {
100                 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, msg +
101                 "operators - " + operators_error);
102             }
103             
104             if (owners == null)
105             {
106                 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, msg +
107                 "group owners/features - " + owners_error);
108             }
109             
110             return mapping.findForward("webtalk_main_menu");
111         }
112         
113         // get a list of any stray users
114
ArrayList JavaDoc stray_users = users.list(domain);
115         
116         if (stray_users != null)
117         {
118             ArrayList JavaDoc known_users = new ArrayList JavaDoc(operators);
119             known_users.addAll(owners);
120             stray_users.removeAll(known_users);
121             
122             if (stray_users.size() <= 0)
123             {
124                 stray_users = null;
125             }
126         }
127         
128         if (operators.size() <= 0)
129         {
130             operators = null;
131         }
132         
133         if (owners.size() <= 0)
134         {
135             owners = null;
136         }
137         
138         // get a list of all the groups
139
GroupTable groups = new GroupTable();
140         groups.setConnection(c);
141         
142         ArrayList JavaDoc all_groups = groups.list(domain);
143         
144         if (all_groups != null)
145         {
146             if (all_groups.size() <= 0)
147             {
148                 all_groups = null;
149             }
150         }
151         
152         // get a list of the features
153

154         FeatureTable features = new FeatureTable();
155         features.setConnection(c);
156         
157         ArrayList JavaDoc all_features = features.list(domain);
158         
159         if (all_features != null)
160         {
161             if (all_features.size() <= 0)
162             {
163                 all_features = null;
164             }
165         }
166         
167         // get a list of canned messages
168

169         CannedMessageTable msgs = new CannedMessageTable();
170         msgs.setConnection(c);
171         
172         ArrayList JavaDoc all_messages = msgs.search(new CannedMessageElement(), "Group", domain);
173         
174         if (all_messages != null)
175         {
176             if (all_messages.size() <= 0)
177             {
178                 all_messages = null;
179             }
180         }
181         
182         // get a list of the system user accounts
183

184         AccountsTable accounts = new AccountsTable(AdminConfig.getInstance().getDBParams().getAdminDb());
185         accounts.setConnection(c);
186         
187         ArrayList JavaDoc system_accounts = accounts.list(domain);
188         
189         if (system_accounts != null)
190         {
191             if (system_accounts.size() <= 0)
192             {
193                 system_accounts = null;
194             }
195         }
196         
197         // set request scope attributes
198

199         request.setAttribute("operators", operators);
200         request.setAttribute("owners", owners);
201         request.setAttribute("strayUsers", stray_users);
202         request.setAttribute("groups", all_groups);
203         request.setAttribute("features", all_features);
204         request.setAttribute("cannedMessages", all_messages);
205         request.setAttribute("accounts", system_accounts);
206         
207         
208         // add related tasks to the navigation bar
209
WebTalkRelatedTasks menu = new WebTalkRelatedTasks();
210         request.setAttribute("menu", menu);
211         
212         menu.addLink(new LinkAttribute("List all groups", "list_groups"));
213         menu.addLink(new LinkAttribute("List all features", "list_features"));
214         menu.addLink(new LinkAttribute("Search users", "display_user_search"));
215         menu.addLink(new LinkAttribute("Search canned messages", "display_canned_message_search"));
216         
217         return mapping.getInputForward();
218     }
219 }
220
Popular Tags