return null;
}
if(!UtilMethods.isSet(captcha) || !UtilMethods.isSet(captchaSession) || !captcha.equals(captchaSession)) {
errors.add(Globals.ERROR_KEY, new ActionMessage("message.contentlet.required", "Validation Image"));
request.setAttribute(Globals.ERROR_KEY, errors);
session.setAttribute(Globals.ERROR_KEY, errors);
String queryString = request.getQueryString();
String invalidCaptchaURL = request.getParameter("invalidCaptchaReturnUrl");
if(!UtilMethods.isSet(invalidCaptchaURL)) {
invalidCaptchaURL = errorURL;
}
ActionForward af = new ActionForward();
af.setRedirect(true);
if (UtilMethods.isSet(queryString)) {
af.setPath(invalidCaptchaURL + "?" + queryString + "&error=Validation-Image");
} else {
af.setPath(invalidCaptchaURL + "?error=Validation-Image");
}
return af;
}
}
Map<String, Object> parameters = null;
if (request instanceof UploadServletRequest)
{
UploadServletRequest uploadReq = (UploadServletRequest) request;
parameters = new HashMap<String, Object> (uploadReq.getParameterMap());
for (Entry<String, Object> entry : parameters.entrySet())
{
if(entry.getKey().toLowerCase().indexOf("file") > -1 && !entry.getKey().equals("attachFiles"))
{
parameters.put(entry.getKey(), uploadReq.getFile(entry.getKey()));
}
}
}
else
{
parameters = new HashMap<String, Object> (request.getParameterMap());
}
Set<String> toValidate = new java.util.HashSet<String>(parameters.keySet());
//Enhancing the ignored parameters not to be send in the email
String ignoredParameters = (String) EmailFactory.getMapValue("ignore", parameters);
if(ignoredParameters == null)
{
ignoredParameters = "";
}
ignoredParameters += ":useCaptcha:captcha:invalidCaptchaReturnUrl:return:returnUrl:errorURL:ignore:to:from:cc:bcc:dispatch:order:prettyOrder:autoReplyTo:autoReplyFrom:autoReplyText:autoReplySubject:";
parameters.put("ignore", ignoredParameters);
// getting categories from inodes
// getting parent category name and child categories name
// and replacing the "categories" parameter
String categories = "";
String[] categoriesArray = request.getParameterValues("categories");
if (categoriesArray != null) {
HashMap hashCategories = new HashMap<String, String>();
for (int i = 0; i < categoriesArray.length; i++) {
Category node = (Category) InodeFactory.getInode(categoriesArray[i], Category.class);
Category parent = (Category) InodeFactory.getParentOfClass(node, Category.class);
String parentCategoryName = parent.getCategoryName();
if (hashCategories.containsKey(parentCategoryName)) {
String childCategoryName = (String) hashCategories.get(parentCategoryName);
if (UtilMethods.isSet(childCategoryName)) {
childCategoryName += ", ";
}
childCategoryName += node.getCategoryName();
hashCategories.put(parentCategoryName, childCategoryName);
}
else {
hashCategories.put(parentCategoryName, node.getCategoryName());
}
}
Set<String> keySet = hashCategories.keySet();
for (String stringKey: keySet) {
if (UtilMethods.isSet(categories)) {
categories += "; ";
}
categories += stringKey + " : " + (String) hashCategories.get(stringKey);
parameters.put(stringKey, (String) hashCategories.get(stringKey));
}
parameters.remove("categories");
}
WebForm webForm = new WebForm();
try
{
/*validation parameter should ignore the returnUrl and erroURL field in the spam check*/
String[] removeParams = ignoredParameters.split(":");
for(String param : removeParams){
toValidate.remove(param);
}
parameters.put("request", request);
parameters.put("response", response);
//Sending the email
webForm = EmailFactory.sendParameterizedEmail(parameters, toValidate, currentHost, currentUser);
webForm.setCategories(categories);
if(UtilMethods.isSet(request.getParameter("createAccount")) && request.getParameter("createAccount").equals("true"))
{
//if we create account set to true we create a user account and add user comments.
createAccount(webForm, request);
try{
String userInode = webForm.getUserInode();
String customFields = webForm.getCustomFields();
customFields += " User Inode = " + String.valueOf(userInode) + " | ";
webForm.setCustomFields(customFields);
}
catch(Exception e){
}
}
if(UtilMethods.isSet(webForm.getFormType())){
HibernateUtil.saveOrUpdate(webForm);
}
if (request.getParameter("return") != null)
{
ActionForward af = new ActionForward(SecurityUtils.stripReferer(request, request.getParameter("return")));
af.setRedirect(true);
return af;
}
else if (request.getParameter("returnUrl") != null)
{
ActionForward af = new ActionForward(SecurityUtils.stripReferer(request, request.getParameter("returnUrl")));
af.setRedirect(true);
return af;
}
else
{
return rMapping.findForward("thankYouPage");
}
}
catch (DotRuntimeException e)
{
errors.add(Globals.ERROR_KEY, new ActionMessage("error.processing.your.email"));
request.getSession().setAttribute(Globals.ERROR_KEY, errors);
String queryString = request.getQueryString();
if (queryString == null) {