public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
{
String dataSource = Settings.getInstance().getSiteInfo(CVUtility.getHostName(super.getServlet().getServletContext())).getDataSource();
ActionErrors allErrors = new ActionErrors();
ActionForward forward = null;
try
{
DynaActionForm dynaForm = (DynaActionForm)form;
HttpSession session = request.getSession();
int individualId = ((UserObject)session.getAttribute("userobject")).getIndividualID();
String typeOfSave = "saveclose";
if (request.getParameter("buttonpress") != null)
{
typeOfSave = request.getParameter("buttonpress");
}
UserHome uhome = (UserHome)CVUtility.getHomeObject("com.centraview.administration.user.UserHome", "User");
User uRemote = (User)uhome.create();
uRemote.setDataSource(dataSource);
String oldPassword = "", newPassword = "";
// TODO integrate password change with RememberMe functionallity.
if (uRemote != null)
{
oldPassword = (String)request.getParameter("oldpassword");
newPassword = (String)request.getParameter("newpassword");
}
if (newPassword != null && newPassword.length() != 0)
{
try
{
uRemote.changePassword(individualId, oldPassword, newPassword);
} catch (UserException ue) {
if (ue.getExceptionId() == UserException.COULDNOT_CHANGE_PASSWORD)
{
allErrors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.freeForm",
"Error while updating login information, " + ue.getExceptionDescription()));
saveErrors(request, allErrors);
} else {
ue.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
ContactFacadeHome cfh = (ContactFacadeHome)CVUtility.getHomeObject("com.centraview.contact.contactfacade.ContactFacadeHome", "ContactFacade");
ContactFacade remote = (ContactFacade)cfh.create();
remote.setDataSource(dataSource);
IndividualVO individualVO = new IndividualVOX(form, request, dataSource);
if (typeOfSave.equals("save"))
{
try {
remote.updateIndividual(individualVO, individualId);
} catch (Exception e) {
logger.error("[execute] Exception thrown.", e);
throw new ServletException(e);
}
request.setAttribute("TYPEOFOPERATION", "EDIT");
}
forward = new ActionForward(mapping.findForward(FORWARD_save).getPath(), false);
request.setAttribute("TYPEOFSUBMODULE", AdminConstantKeys.PREFERENCEPAGE);
} catch (Exception e) {
logger.error("[execute] Exception thrown.", e);
throw new ServletException(e);
}