From 8b4d9fadd2d25d8e80785d643d3b397e8797b92d Mon Sep 17 00:00:00 2001 From: zapata Date: Sat, 26 Apr 2003 01:28:54 +0000 Subject: [PATCH] opensession fixes --- source/mir/session/HTTPAdapters.java | 5 +- .../basic/MirBasicArticlePostingHandler.java | 263 +++------------------ .../basic/MirBasicCommentPostingHandler.java | 9 +- .../basic/MirBasicPostingSessionHandler.java | 22 ++ .../mircoders/servlet/ServletModuleOpenIndy.java | 5 +- 5 files changed, 58 insertions(+), 246 deletions(-) diff --git a/source/mir/session/HTTPAdapters.java b/source/mir/session/HTTPAdapters.java index 83ed63d3..fec51f6e 100755 --- a/source/mir/session/HTTPAdapters.java +++ b/source/mir/session/HTTPAdapters.java @@ -32,14 +32,13 @@ package mir.session; import java.util.Arrays; import java.util.List; import java.util.Vector; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; -import mir.util.HTTPParsedRequest; - import org.apache.commons.fileupload.FileItem; +import mir.util.HTTPParsedRequest; + public class HTTPAdapters { public static class HTTPRequestAdapter implements Request { private HttpServletRequest request; diff --git a/source/mircoders/localizer/basic/MirBasicArticlePostingHandler.java b/source/mircoders/localizer/basic/MirBasicArticlePostingHandler.java index 6afb6f79..fe50c134 100755 --- a/source/mircoders/localizer/basic/MirBasicArticlePostingHandler.java +++ b/source/mircoders/localizer/basic/MirBasicArticlePostingHandler.java @@ -29,13 +29,14 @@ */ package mircoders.localizer.basic; -import java.util.Arrays; -import java.util.*; +import java.util.GregorianCalendar; +import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Vector; +import java.util.Map; import mir.entity.Entity; +import mir.misc.StringUtil; import mir.session.Request; import mir.session.Response; import mir.session.Session; @@ -43,14 +44,14 @@ import mir.session.SessionExc; import mir.session.SessionFailure; import mir.session.UploadedFile; import mir.util.ExceptionFunctions; +import mircoders.entity.EntityContent; import mircoders.global.MirGlobal; -import mir.misc.*; import mircoders.media.MediaUploadProcessor; -import mircoders.module.*; -import mircoders.entity.*; -import mircoders.storage.*; +import mircoders.module.ModuleContent; +import mircoders.module.ModuleMediaType; import mircoders.storage.DatabaseContent; -import mircoders.media.*; +import mircoders.storage.DatabaseContentToMedia; +import mircoders.storage.DatabaseContentToTopics; /** * @@ -75,7 +76,7 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler String field = (String) i.next(); aResponse.setResponseValue(field, aRequest.getParameter(field)); } - aResponse.setResponseValue("to_topic", aRequest.getParameter("to_topic")); + aResponse.setResponseValue("to_topic", aRequest.getParameters("to_topic")); } public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure { @@ -95,6 +96,20 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler aContent.setValueForProperty("to_publisher", "1"); } + public void setArticleTopics(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure { + // topics: + List topics = aRequest.getParameters("to_topic"); + if (topics.size() > 0) { + try { + DatabaseContentToTopics.getInstance().setTopics(aContent.getId(), topics); + } + catch (Throwable e) { + logger.error("setting content_x_topic failed"); + throw new SessionFailure("MirBasicArticlePostingHandler: can't set topics: " + e.toString(), e); + } + } + } + public void preProcessRequest(Request aRequest, Session aSession) throws SessionExc, SessionFailure { try { String id; @@ -111,18 +126,9 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler } aSession.setAttribute("content", article); - // topics: - List topics = aRequest.getParameters("to_topic"); - if (topics.size() > 0) { - try { - DatabaseContentToTopics.getInstance().setTopics(id, topics); - } - catch (Throwable e) { - logger.error("setting content_x_topic failed"); - contentModule.deleteById(id); - throw new SessionFailure("MirBasicArticlePostingHandler: can't set topics: " + e.toString(), e); - } - } + + setArticleTopics(aRequest, aSession, article); + } catch (Throwable t) { throw new SessionFailure(t); @@ -192,218 +198,3 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler } } } - -/* - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import mir.entity.Entity; -import mir.session.Request; -import mir.session.Response; -import mir.session.Session; -import mir.session.SessionExc; -import mir.session.SessionFailure; -import mir.session.UploadedFile; -import mir.util.ExceptionFunctions; -import mircoders.entity.EntityContent; -import mircoders.global.MirGlobal; -import mircoders.media.MediaUploadProcessor; -import mircoders.module.ModuleContent; -import mircoders.storage.DatabaseContent; -import mircoders.storage.DatabaseContentToMedia; -import mircoders.storage.DatabaseContent; - -public abstract class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler { - protected ModuleContent contentModule; - protected DatabaseContentToMedia contentToMedia = DatabaseContentToMedia.getInstance(); - - public MirBasicArticlePostingHandler() { - super(); - - contentModule= new ModuleContent(DatabaseContent.getInstance()); - } - - public void processRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure { - if (aSession.getAttribute("initialRequest")==null) { - initialRequest(aRequest, aSession, aResponse); - aSession.setAttribute("initialRequest", "no"); - } - else { - subsequentRequest(aRequest, aSession, aResponse); - } - }; - - protected void initializeResponseData(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure { - super.initializeResponseData(aRequest, aSession, aResponse); - - Iterator i = DatabaseContent.getInstance().getFields().iterator(); - while (i.hasNext()) { - String field = (String) i.next(); - aResponse.setResponseValue(field, aRequest.getParameter(field)); - } - - }; - - public void initialRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure{ - super.initialRequest(aRequest, aSession, aResponse); - - String articleId = aRequest.getParameter("to_media"); - if (articleId == null) - throw new SessionExc("MirBasicArticlePostingHandler.initialRequest: article id not set!"); - aSession.setAttribute("to_media", articleId); - - aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.EditTemplate")); - } - - public void subsequentRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure { - try { - initializeResponseData(aRequest, aSession, aResponse); - - List validationErrors = validate(aRequest, aSession); - - if (validationErrors != null && validationErrors.size()>0) { - returnValidationErrors(aRequest, aSession, aResponse, validationErrors); - } - else { - EntityContent content = (EntityContent) contentModule.createNew (); - Iterator i = DatabaseContent.getInstance().getFields().iterator(); -// content.setValues(contentFields); - - finishContent(aRequest, aSession, content); - - String id = content.insert(); - if(id==null){ - afterDuplicateContentPosting(aRequest, aSession, aResponse, content); - logger.info("Dupe content rejected"); - aSession.terminate(); - } - else { - i = aRequest.getUploadedFiles().iterator(); - while (i.hasNext()) { - UploadedFile file = (UploadedFile) i.next(); - processMediaFile(aRequest, aSession, content, file); - } - - afterContentPosting(aRequest, aSession, aResponse, content); - MirGlobal.abuse().checkArticle(content, aRequest, null); - MirGlobal.localizer().openPostings().afterContentPosting(content); - logger.info("Content posted"); - aSession.terminate(); - } - } - } - catch (Throwable t) { - ExceptionFunctions.traceCauseException(t).printStackTrace(); - - throw new SessionFailure("MirBasicArticlePostingHandler.subsequentRequest: " + t.getMessage(), t); - } - } - - public void initializeContentPosting(Request aRequest, Session aSession, Response aResponse) throws SessionFailure, SessionExc { - String articleId = aRequest.getParameter("to_media"); - if (articleId==null) - articleId = aRequest.getParameter("aid"); - - if (articleId==null) - throw new SessionExc("initializeContentPosting: article id not set!"); - - aSession.setAttribute("to_media", articleId); - processContentPosting(aRequest, aSession, aResponse); - }; - - public void returnValidationErrors(Request aRequest, Session aSession, Response aResponse, List aValidationErrors) throws SessionFailure, SessionExc { - aResponse.setResponseValue("errors", aValidationErrors); - aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.EditTemplate")); - }; - - public void processContentPosting(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure { - if (MirGlobal.abuse().getOpenPostingPassword()) { - String password = generateOnetimePassword(); - aSession.setAttribute("password", password); - aResponse.setResponseValue("password", password); - aResponse.setResponseValue("passwd", password); - } - else { - aResponse.setResponseValue("password", null); - } - - aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.EditTemplate")); - }; - - public void processMediaFile(Request aRequest, Session aSession, EntityContent aContent, UploadedFile aFile) throws SessionExc, SessionFailure { - try { - Entity mediaItem = MediaUploadProcessor.processMediaUpload(aFile, new HashMap()); - finishMedia(aRequest, aSession, aFile, mediaItem); - mediaItem.update(); - contentToMedia.addMedia(aContent.getId(), mediaItem.getId()); - } - catch (Throwable t) { - throw new SessionFailure(t); - } - } - - public void finishMedia(Request aRequest, Session aSession, UploadedFile aFile, Entity aMedia) throws SessionExc, SessionFailure { - } - - public void finishContent(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure { - if (aSession.getAttribute("to_media") == null) - throw new SessionExc("missing to_media"); - - aContent.setValueForProperty("is_published", "1"); - aContent.setValueForProperty("to_content_status", "1"); - aContent.setValueForProperty("is_html","0"); - aContent.setValueForProperty("to_media", (String) aSession.getAttribute("to_media")); - }; - - public void addMedia(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure { - } - - public void afterContentPosting(Request aRequest, Session aSession, Response aResponse, EntityContent aContent) { - DatabaseContent.getInstance().setUnproduced("id=" + aContent.getValue("to_media")); - aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.DoneTemplate")); - }; - - public void afterDuplicateContentPosting(Request aRequest, Session aSession, Response aResponse, EntityContent aContent) { - aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.DupeTemplate")); - }; - - public class ValidationError { - private String field; - private String message; - private List parameters; - - public ValidationError(String aField, String aMessage) { - this (aField, aMessage, new String[] {}); - } - - public ValidationError(String aField, String aMessage, Object aParameter) { - this (aField, aMessage, new Object[] {aParameter}); - } - - public ValidationError(String aField, String aMessage, Object[] aParameters) { - field = aField; - message = aMessage; - parameters = Arrays.asList(aParameters); - } - - public String getMessage() { - return message; - } - - public String getField() { - return field; - } - - public List getParameters() { - return parameters; - } - } - - - -} -*/ \ No newline at end of file diff --git a/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java b/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java index 76933bf7..6571dd3d 100755 --- a/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java +++ b/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java @@ -29,11 +29,10 @@ */ package mircoders.localizer.basic; -import java.util.Arrays; -import java.util.*; +import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Vector; +import java.util.Map; import mir.entity.Entity; import mir.session.Request; @@ -46,11 +45,11 @@ import mir.util.ExceptionFunctions; import mircoders.entity.EntityComment; import mircoders.global.MirGlobal; import mircoders.media.MediaUploadProcessor; -import mircoders.module.*; +import mircoders.module.ModuleComment; +import mircoders.module.ModuleMediaType; import mircoders.storage.DatabaseComment; import mircoders.storage.DatabaseCommentToMedia; import mircoders.storage.DatabaseContent; -import mircoders.media.*; /** * diff --git a/source/mircoders/localizer/basic/MirBasicPostingSessionHandler.java b/source/mircoders/localizer/basic/MirBasicPostingSessionHandler.java index df23dedc..ddefe57d 100755 --- a/source/mircoders/localizer/basic/MirBasicPostingSessionHandler.java +++ b/source/mircoders/localizer/basic/MirBasicPostingSessionHandler.java @@ -295,6 +295,28 @@ public abstract class MirBasicPostingSessionHandler implements SessionHandler { } /** + * Convenience validation method to test wether a field is numeric + + * @param aRequest + * @param aFieldName + * @param anErrorMessageResource + * @param aValidationResults + * @return + */ + + protected boolean testFieldLength(Request aRequest, String aFieldName, int aMaxLength, String anErrorMessageResource, List aValidationResults) { + String value = aRequest.getParameter(aFieldName); + + if (value!=null) { + if (value.length()>aMaxLength) { + aValidationResults.add(new ValidationError(aFieldName, anErrorMessageResource)); + return false; + } + else return true; + } + return true; + } + /** * Method to generate a one-time password * * @return a password, to be used once diff --git a/source/mircoders/servlet/ServletModuleOpenIndy.java b/source/mircoders/servlet/ServletModuleOpenIndy.java index a7c9fd58..b37a46f1 100755 --- a/source/mircoders/servlet/ServletModuleOpenIndy.java +++ b/source/mircoders/servlet/ServletModuleOpenIndy.java @@ -93,9 +93,10 @@ import mircoders.entity.EntityComment; import mircoders.entity.EntityContent; import mircoders.global.MirGlobal; import mircoders.media.MediaUploadProcessor; -import mircoders.module.*; +import mircoders.module.ModuleComment; import mircoders.module.ModuleContent; import mircoders.module.ModuleImages; +import mircoders.module.ModuleMediaType; import mircoders.module.ModuleTopics; import mircoders.pdf.PDFGenerator; import mircoders.search.AudioSearchTerm; @@ -121,7 +122,7 @@ import mircoders.storage.DatabaseTopics; * open-postings to the newswire * * @author mir-coders group - * @version $Id: ServletModuleOpenIndy.java,v 1.81 2003/04/26 00:42:22 zapata Exp $ + * @version $Id: ServletModuleOpenIndy.java,v 1.82 2003/04/26 01:28:54 zapata Exp $ * */ -- 2.11.0