1 2 package com.quikj.application.communicator.applications.webtalk.controller; 3 4 import javax.servlet.http.*; 5 import org.apache.struts.action.*; 6 import java.sql.*; 7 8 import com.quikj.application.communicator.admin.model.*; 9 import com.quikj.application.communicator.admin.controller.*; 10 import com.quikj.application.communicator.applications.webtalk.model.*; 11 import com.quikj.server.framework.*; 12 16 public class FeatureOperatorManagementAction extends Action 17 { 18 19 public static final String CLASSNAME = "com.quikj.application.web.talk.feature.operator.Operator"; 20 21 22 public FeatureOperatorManagementAction() 23 { 24 } 25 26 public ActionForward execute(ActionMapping mapping, 27 ActionForm form, 28 HttpServletRequest request, 29 HttpServletResponse response) 30 { 31 FeatureOperatorManagementForm fform = (FeatureOperatorManagementForm)form; 32 33 ActionErrors errors = new ActionErrors(); 34 35 Connection c = (Connection)request.getSession().getAttribute("connection"); 36 if (c == null) 37 { 38 errors.add(ActionErrors.GLOBAL_ERROR, 39 new ActionError("error.not.logged.in")); 40 saveErrors(request, errors); 41 return mapping.findForward("logon"); 42 } 43 44 AccountElement element = (AccountElement)request.getSession().getAttribute("userInfo"); 45 if (element.isAdminLevel() == false) 46 { 47 errors.add(ActionErrors.GLOBAL_ERROR, 48 new ActionError("error.insufficient.privilege")); 49 saveErrors(request, errors); 50 51 return mapping.findForward("main_menu"); 52 } 53 54 if (fform.getSubmit().equals("Find") == true) 55 { 56 FeatureTable tbl = new FeatureTable(); 57 tbl.setConnection(c); 58 59 FeatureTableElement e = tbl.query(fform.getName()); 60 61 if (e == null) 62 { 63 errors.add(ActionErrors.GLOBAL_ERROR, 64 new ActionError("error.feature.not.exist")); 65 66 if (tbl.getErrorMessage() != null) 67 { 68 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, 69 "FeatureOperatorManagementAction.execute()/Find/by-" 70 + element.getName() 71 + ": " 72 + tbl.getErrorMessage()); 73 } 74 } 75 else 76 { 77 fform.setActive(e.isActive()); 78 fform.setName(e.getName()); 79 fform.setParamsList(e.getParams()); 80 81 if (e.isActive() == true) 82 { 83 request.setAttribute("featureStatus", new String ("Active")); 84 } 85 else 86 { 87 request.setAttribute("featureStatus", new String ("Inactive")); 88 } 89 90 if (e.getClassName().equals(CLASSNAME) == false) 91 { 92 WebTalkRelatedTasks menu = new WebTalkRelatedTasks(); 94 menu.addLink(new LinkAttribute("Search users", "display_user_search")); 95 menu.addLink(new LinkAttribute("Administer users", "display_user_management")); 96 request.setAttribute("menu", menu); 97 98 return mapping.findForward("feature_management"); 99 } 100 } 101 } 102 else if (fform.getSubmit().equals("Modify") == true) 103 { 104 FeatureTable tbl = new FeatureTable(); 105 tbl.setConnection(c); 106 107 FeatureTableElement e = new FeatureTableElement(); 108 109 e.setName(fform.getName()); 110 e.setClassName(CLASSNAME); 111 e.setParams(fform.getParamsList()); 112 113 if (tbl.modify(e) == false) 114 { 115 if (tbl.getErrorMessage() == null) 116 { 117 errors.add(ActionErrors.GLOBAL_ERROR, 118 new ActionError("error.feature.not.exist")); 119 } 120 else 121 { 122 errors.add(ActionErrors.GLOBAL_ERROR, 123 new ActionError("error.db.failure")); 124 125 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, 126 "FeatureOperatorManagementAction.execute()/Modify/by-" 127 + element.getName() 128 + ": " 129 + tbl.getErrorMessage()); 130 } 131 } 132 else 133 { 134 AceLogger.Instance().log(AceLogger.INFORMATIONAL, AceLogger.USER_LOG, 135 "User " + element.getName() + " modified feature " + 136 fform.getName()); 137 138 ActionMessages messages = new ActionMessages(); 139 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.modified")); 140 141 if (tbl.isFeatureActive(e.getName()) == true) 143 { 144 if (FeatureManagementAction.notifyAppServer(request, e.getName(), "synch", errors, "Modify/by-" + element.getName()) == true) 145 { 146 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.appserver.updated")); 147 } 148 } 149 150 if (errors.isEmpty() == false) 152 { 153 saveErrors(request, errors); 154 } 155 saveMessages(request, messages); 156 return mapping.findForward("webtalk_main_menu"); 157 } 158 } 159 else if (fform.getSubmit().equals("Create") == true) 160 { 161 FeatureTable tbl = new FeatureTable(); 162 tbl.setConnection(c); 163 164 FeatureTableElement e = new FeatureTableElement(); 165 166 e.setActive(fform.isActive()); 167 e.setClassName(CLASSNAME); 168 e.setName(fform.getName()); 169 e.setParams(fform.getParamsList()); 170 171 if (tbl.create(e) == false) 172 { 173 errors.add(ActionErrors.GLOBAL_ERROR, 174 new ActionError("error.feature.create.failure")); 175 176 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, 177 "FeatureOperatorManagementAction.execute()/Create/by-" 178 + element.getName() 179 + ": " 180 + tbl.getErrorMessage()); 181 } 182 else 183 { 184 AceLogger.Instance().log(AceLogger.INFORMATIONAL, AceLogger.USER_LOG, 185 "User " + element.getName() + " created feature " + 186 fform.getName()); 187 188 ActionMessages messages = new ActionMessages(); 190 messages.add(ActionMessages.GLOBAL_MESSAGE, 191 new ActionMessage("message.feature.created")); 192 saveMessages(request, messages); 193 return mapping.findForward("webtalk_main_menu"); 194 } 195 } 196 else if (fform.getSubmit().equals("Delete") == true) 197 { 198 FeatureTable tbl = new FeatureTable(); 199 tbl.setConnection(c); 200 201 if (tbl.delete(fform.getName()) == false) 202 { 203 if (tbl.getErrorMessage() == null) 204 { 205 errors.add(ActionErrors.GLOBAL_ERROR, 206 new ActionError("error.feature.not.exist")); 207 } 208 else 209 { 210 errors.add(ActionErrors.GLOBAL_ERROR, 211 new ActionError("error.db.failure")); 212 213 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, 214 "FeatureOperatorManagementAction.execute()/Delete/by-" 215 + element.getName() 216 + ": " 217 + tbl.getErrorMessage()); 218 } 219 } 220 else 221 { 222 AceLogger.Instance().log(AceLogger.INFORMATIONAL, AceLogger.USER_LOG, 223 "User " + element.getName() + " deleted feature " + 224 fform.getName()); 225 226 ActionMessages messages = new ActionMessages(); 227 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.deleted")); 228 229 if (FeatureManagementAction.notifyAppServer(request, fform.getName(), "deactivate", errors, "Delete/by-" + element.getName()) == true) 231 { 232 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.appserver.updated")); 233 } 234 235 if (errors.isEmpty() == false) 237 { 238 saveErrors(request, errors); 239 } 240 saveMessages(request, messages); 241 return mapping.findForward("webtalk_main_menu"); 242 } 243 } 244 else if (fform.getSubmit().equals("Activate") == true) 245 { 246 FeatureTable tbl = new FeatureTable(); 247 tbl.setConnection(c); 248 249 if (tbl.activate(fform.getName()) == false) 250 { 251 if (tbl.getErrorMessage() == null) 252 { 253 errors.add(ActionErrors.GLOBAL_ERROR, 254 new ActionError("error.feature.not.exist")); 255 } 256 else 257 { 258 errors.add(ActionErrors.GLOBAL_ERROR, 259 new ActionError("error.db.failure")); 260 261 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, 262 "FeatureOperatorManagementAction.execute()/Activate/by-" 263 + element.getName() 264 + ": " 265 + tbl.getErrorMessage()); 266 } 267 } 268 else 269 { 270 AceLogger.Instance().log(AceLogger.INFORMATIONAL, AceLogger.USER_LOG, 271 "User " + element.getName() + " activated feature " + 272 fform.getName()); 273 274 ActionMessages messages = new ActionMessages(); 275 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.modified")); 276 277 if (FeatureManagementAction.notifyAppServer(request, fform.getName(), "activate", errors, "Activate/by-" + element.getName()) == true) 279 { 280 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.appserver.updated")); 281 } 282 283 if (errors.isEmpty() == false) 285 { 286 saveErrors(request, errors); 287 } 288 saveMessages(request, messages); 289 return mapping.findForward("webtalk_main_menu"); 290 } 291 } 292 else if (fform.getSubmit().equals("Deactivate") == true) 293 { 294 FeatureTable tbl = new FeatureTable(); 295 tbl.setConnection(c); 296 297 if (tbl.deactivate(fform.getName()) == false) 298 { 299 if (tbl.getErrorMessage() == null) 300 { 301 errors.add(ActionErrors.GLOBAL_ERROR, 302 new ActionError("error.feature.not.exist")); 303 } 304 else 305 { 306 errors.add(ActionErrors.GLOBAL_ERROR, 307 new ActionError("error.db.failure")); 308 309 AceLogger.Instance().log(AceLogger.ERROR, AceLogger.SYSTEM_LOG, 310 "FeatureOperatorManagementAction.execute()/Deactivate/by-" 311 + element.getName() 312 + ": " 313 + tbl.getErrorMessage()); 314 } 315 } 316 else 317 { 318 AceLogger.Instance().log(AceLogger.INFORMATIONAL, AceLogger.USER_LOG, 319 "User " + element.getName() + " deactivated feature " + 320 fform.getName()); 321 322 ActionMessages messages = new ActionMessages(); 323 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.modified")); 324 325 if (FeatureManagementAction.notifyAppServer(request, fform.getName(), "deactivate", errors, "Deactivate/by-" + element.getName()) == true) 327 { 328 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.feature.appserver.updated")); 329 } 330 331 if (errors.isEmpty() == false) 333 { 334 saveErrors(request, errors); 335 } 336 saveMessages(request, messages); 337 return mapping.findForward("webtalk_main_menu"); 338 } 339 } 340 341 if (errors.isEmpty() == false) 342 { 343 saveErrors(request, errors); 344 } 345 346 WebTalkRelatedTasks menu = new WebTalkRelatedTasks(); 348 menu.addLink(new LinkAttribute("Search users", "display_user_search")); 349 menu.addLink(new LinkAttribute("Administer users", "display_user_management")); 350 menu.addLink(new LinkAttribute("List all groups", "list_groups")); 351 menu.addLink(new LinkAttribute("Administer groups", "display_group_management")); 352 menu.addLink(new LinkAttribute("List all features", "list_features")); 353 request.setAttribute("menu", menu); 354 355 return mapping.getInputForward(); 356 } 357 358 359 } 360 | Popular Tags |