- deliver(aRequest, aResponse, null, null, configuration.getString("ServletModule.OpenIndy.PostingDisabledTemplate"));
- }
-
- /**
- * Method for making a comment
- */
- public void addcomment(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc, ServletModuleUserExc, ServletModuleFailure {
- if (MirGlobal.abuse().getOpenPostingDisabled()) {
- openPostingDisabled(req, res);
-
- return;
- }
-
- String aid = req.getParameter("aid"); // the article id the comment will belong to
-
- if (aid != null && !aid.equals("")) {
- try {
- Map mergeData = new HashMap();
-
- // onetimepasswd
- if (MirGlobal.abuse().getOpenPostingPassword()) {
- String passwd = generateOnetimePassword();
- HttpSession session = req.getSession(false);
- session.setAttribute("passwd", passwd);
- mergeData.put("passwd", passwd);
- }
- else {
- mergeData.put("passwd", null);
- }
- mergeData.put("aid", aid);
-
- Map extraInfo = new HashMap();
- extraInfo.put("languagePopUpData", DatabaseLanguage.getInstance().getPopupData());
-
- deliver(req, res, mergeData, extraInfo, commentFormTemplate);
- }
- catch (Throwable t) {
- throw new ServletModuleFailure("ServletModuleOpenIndy.addcomment: " + t.getMessage(), t);
- }
- }
- else
- throw new ServletModuleExc("aid not set!");
- }
-
- /**
- * Method for inserting a comment into the Database and delivering
- * the commentDone Page
- */
-
- public void inscomment(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc, ServletModuleUserExc, ServletModuleFailure {
- if (MirGlobal.abuse().getOpenPostingDisabled()) {
- openPostingDisabled(req, res);
-
- return;
- }
-
- String aid = req.getParameter("to_media"); // the article id the comment will belong to
- if (aid != null && !aid.equals("")) {
- // ok, collecting data from form
- try {
- Map withValues = getIntersectingValues(req, DatabaseComment.getInstance());
-
- //no html in comments(for now)
- for (Iterator i = withValues.keySet().iterator(); i.hasNext(); ) {
- String k = (String) i.next();
- String v = (String) withValues.get(k);
-
- withValues.put(k, StringUtil.removeHTMLTags(v));
- }
- withValues.put("is_published", "1");
- withValues.put("to_comment_status", "1");
- withValues.put("is_html", "0");
-
- //checking the onetimepasswd
- HttpSession session = req.getSession(false);
- String sessionPasswd = (String) session.getAttribute("passwd");
- if (sessionPasswd != null) {
- String passwd = req.getParameter("passwd");
- if (passwd == null || passwd.length() == 0) {
- throw new ServletModuleUserExc("comment.error.missingpassword", new String[] {});
- }
- if (!sessionPasswd.equals(passwd)) {
- throw new ServletModuleUserExc("comment.error.invalidpassword", new String[] {});
- }
- session.invalidate();
- }
-
- String id = mainModule.add(withValues);
-
- SimpleResponse response = new SimpleResponse();
- response.setResponseGenerator(commentFormDoneTemplate);
-
- if (id == null) {
- deliver(req, res, null, null, commentFormDupeTemplate);
- }
- else {
- DatabaseContent.getInstance().setUnproduced("id=" + aid);
-
- try {
- EntityComment comment = (EntityComment) DatabaseComment.getInstance().selectById(id);
- MirGlobal.localizer().openPostings().afterCommentPosting(comment);
- MirGlobal.abuse().checkComment(
- comment, new HTTPAdapters.HTTPRequestAdapter(req), res);
- }
- catch (Throwable t) {
- throw new ServletModuleExc(t.getMessage());
- }
- }
-
- // redirecting to url
- // should implement back to article
- deliver(req, res, response.getResponseValues(), null, response.getResponseGenerator());
- }
- catch (Throwable e) {
- throw new ServletModuleFailure(e);
- }
- }
- else
- throw new ServletModuleExc("aid not set!");
-
- }
-
- /**
- * Method for delivering the form-Page for open posting
- */
-
- public void addposting(HttpServletRequest req, HttpServletResponse res)
- throws ServletModuleExc, ServletModuleUserExc, ServletModuleFailure {
- try {
- if (MirGlobal.abuse().getOpenPostingDisabled()) {
- openPostingDisabled(req, res);
-
- return;
- }
-
- Map mergeData = new HashMap();
-
- // onetimepasswd
- if (MirGlobal.abuse().getOpenPostingPassword()) {
- String passwd = generateOnetimePassword();
- HttpSession session = req.getSession(false);
- session.setAttribute("passwd", passwd);
- mergeData.put("passwd", passwd);
- }
- else {
- mergeData.put("passwd", null);
- }
-
- String maxMedia = configuration.getString("ServletModule.OpenIndy.MaxMediaUploadItems");
- String defaultMedia = configuration.getString("ServletModule.OpenIndy.DefaultMediaUploadItems");
- String numOfMedia = req.getParameter("medianum");
-
- if (numOfMedia == null || numOfMedia.equals("")) {
- numOfMedia = defaultMedia;
- }
- else if (Integer.parseInt(numOfMedia) > Integer.parseInt(maxMedia)) {
- numOfMedia = maxMedia;
- }
-
- int mediaNum = Integer.parseInt(numOfMedia);
- List mediaFields = new ArrayList();
- for (int i = 0; i < mediaNum; i++) {
- Integer mNum = new Integer(i + 1);
- mediaFields.add(mNum.toString());
- }
- mergeData.put("medianum", numOfMedia);
- mergeData.put("mediafields", mediaFields);
- mergeData.put("to_topic", null);
-
- Map extraInfo = new HashMap();
- extraInfo.put("languagePopUpData", DatabaseLanguage.getInstance().getPopupData());
- extraInfo.put("themenPopupData", DatabaseTopics.getInstance().getPopupData());
-
- deliver(req, res, mergeData, extraInfo, postingFormTemplate);
- }
- catch (Throwable t) {
- throw new ServletModuleFailure(t);
- }
- }
-
- /**
- * Method for inserting an open posting into the Database and delivering
- * the postingDone Page
- */
-
- public void insposting(HttpServletRequest aRequest, HttpServletResponse aResponse) throws
- ServletModuleExc, ServletModuleUserExc, ServletModuleFailure {
- if (MirGlobal.abuse().getOpenPostingDisabled()) {
- openPostingDisabled(aRequest, aResponse);
-
- return;
- }
-
- try {
- HTTPParsedRequest parsedRequest = new HTTPParsedRequest(
- aRequest,
- configuration.getString("Mir.DefaultEncoding"),
- configuration.getInt("MaxMediaUploadSize")*1024,
- configuration.getString("TempDir"));
-
- Map mergeData = new HashMap();
-
- HttpSession session = aRequest.getSession(false);
- String sessionPasswd = (String) session.getAttribute("passwd");
- if (sessionPasswd != null) {
- String passwd = parsedRequest.getParameter("passwd");
-
- if (passwd == null || passwd.length() == 0) {
- throw new ServletModuleUserExc("posting.error.missingpassword", new String[] {});
- }
- if (!sessionPasswd.equals(passwd)) {
- throw new ServletModuleUserExc("posting.error.invalidpassword", new String[] {});
- }
- session.invalidate();
- }
-
- if (((parsedRequest.getParameter("title")).length() == 0) ||
- ((parsedRequest.getParameter("description")).length() == 0) ||
- ((parsedRequest.getParameter("content_data")).length() == 0))
- throw new ServletModuleUserExc("posting.error.missingfield", new String[] {});
-
- List mediaList = new ArrayList();
- Iterator i = parsedRequest.getFiles().iterator();
-
- while (i.hasNext()) {
- UploadedFile file = new mir.session.CommonsUploadedFileAdapter((FileItem) i.next());
- Map mediaValues = new HashMap();
-
- String suffix = file.getFieldName().substring(5); // media${m}
- logger.debug("media_title" + suffix);
- String title = parsedRequest.getParameter("media_title" + suffix);
-
- mediaValues.put("title", StringUtil.removeHTMLTags(title));
- mediaValues.put("creator", StringUtil.removeHTMLTags(parsedRequest.getParameter("creator")));
- mediaValues.put("to_publisher", "0");
- mediaValues.put("is_published", "1");
- mediaValues.put("to_media_folder", "7");
-
- mediaList.add(MediaUploadProcessor.processMediaUpload(file, mediaValues));
- }
-
- Map withValues = new HashMap();
- i = DatabaseContent.getInstance().getFieldNames().iterator();
- while (i.hasNext()) {
- String field = (String) i.next();
- String value = parsedRequest.getParameter(field);
- if (value!=null)
- withValues.put(field, value);
- }
-
-
- for (i = withValues.keySet().iterator(); i.hasNext(); ) {
- String k = (String) i.next();
- String v = (String) withValues.get(k);
-
- if (k.equals("content_data")) {
- //this doesn't quite work yet, so for now, all html goes
- //withValues.put(k,StringUtil.approveHTMLTags(v));
- withValues.put(k, StringUtil.deleteForbiddenTags(v));
- }
- else if (k.equals("description")) {
- String tmp = StringUtil.deleteForbiddenTags(v);
- withValues.put(k, StringUtil.deleteHTMLTableTags(tmp));
- }
- else {
- withValues.put(k, StringUtil.removeHTMLTags(v));
- }
- }
-
- withValues.put("date", StringUtil.date2webdbDate(new GregorianCalendar()));
- withValues.put("publish_path",
- StringUtil.webdbDate2path( (String) withValues.get("date")));
- withValues.put("is_produced", "0");
- withValues.put("is_published", "1");
- if (directOp.equals("yes"))
- withValues.put("to_article_type", "1");
-
- withValues.put("to_publisher", "1");
-
- // inserting content into database
- String cid = contentModule.add(withValues);
- logger.debug("id: " + cid);
- //insert was not successfull
- if (cid == null) {
- deliver(aRequest, aResponse, mergeData, null, postingFormDupeTemplate);
- return;
- }
-
- List topics = parsedRequest.getParameterList("to_topic");
- if (topics.size() > 0) {
- try {
- DatabaseContentToTopics.getInstance().setTopics(cid, topics);
- }
- catch (Throwable e) {
- logger.error("setting content_x_topic failed");
- contentModule.deleteById(cid);
- throw new ServletModuleFailure(
- "smod - openindy :: insposting: setting content_x_topic failed: " +
- e.toString(), e);
- }
- }
-
- i = mediaList.iterator();
- while (i.hasNext()) {
- Entity mediaEnt = (Entity) i.next();
- DatabaseContentToMedia.getInstance().addMedia(cid, mediaEnt.getId());
- }
-
- EntityContent article = (EntityContent) contentModule.getById(cid);
- try {
- MirGlobal.abuse().checkArticle(
- article, new HTTPAdapters.HTTPRequestAdapter(aRequest), aResponse);
- MirGlobal.localizer().openPostings().afterContentPosting(article);
- }
- catch (Throwable t) {
- logger.error("Error while post-processing article: " + t.getMessage());
- }
- deliver(aRequest, aResponse, mergeData, null, postingFormDoneTemplate);
- }
- catch (Throwable e) {
- e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
- Throwable cause = ExceptionFunctions.traceCauseException(e);
-
- if (cause instanceof UnsupportedMediaTypeExc) {
- throw new ServletModuleUserExc("media.unsupportedformat", new String[] {});
- }
- throw new ServletModuleFailure(e);
- }