X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicChildArticlePostingHandler.java;h=4e346ca4444121da8bed92e28179f76634f2fe2f;hb=7d0ae1d914858345908ff324c2d1a4e53392ae8a;hp=492d47c79159f9023708d91274e5429c65572539;hpb=b865b9333cb77f34a540a5ec102687af24f5cf24;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicChildArticlePostingHandler.java b/source/mircoders/localizer/basic/MirBasicChildArticlePostingHandler.java index 492d47c7..4e346ca4 100755 --- a/source/mircoders/localizer/basic/MirBasicChildArticlePostingHandler.java +++ b/source/mircoders/localizer/basic/MirBasicChildArticlePostingHandler.java @@ -30,10 +30,16 @@ package mircoders.localizer.basic; -import mir.session.*; -import mircoders.entity.*; - +import mir.session.Request; +import mir.session.Session; +import mir.session.SessionExc; +import mir.session.SessionFailure; +import mircoders.entity.EntityContent; +/** + * Handler for open postings of "child articles", that is articles + * linked to other articles. Used frequently for translations. + */ public class MirBasicChildArticlePostingHandler extends MirBasicArticlePostingHandler { public MirBasicChildArticlePostingHandler() { super(); @@ -41,22 +47,39 @@ public class MirBasicChildArticlePostingHandler extends MirBasicArticlePostingHa setNormalResponseGenerator(configuration.getString("Localizer.OpenSession.article.EditTemplate")); } + /** + * {@inheritDoc} + * + *

+ * This class overrides this method to set the parent article. + */ public void finalizeArticle(Request aRequest, Session aSession, EntityContent anArticle) throws SessionExc, SessionFailure { super.finalizeArticle(aRequest, aSession, anArticle); - anArticle.setValueForProperty("to_media", (String) aSession.getAttribute("to_media")); + anArticle.setFieldValue("to_content", (String) aSession.getAttribute("to_content")); } + /** + * {@inheritDoc} + * + *

+ * Overridden by this class to retrieve and store the to be associated + * parent article for subsequent usage. + */ protected void initializeSession(Request aRequest, Session aSession) throws SessionExc, SessionFailure { super.initializeSession(aRequest, aSession); - String parentId = aRequest.getParameter("to_media"); + String parentId = aRequest.getParameter("to_content"); if (parentId==null) throw new SessionExc("initializeSession: parent id not set!"); - - aSession.setAttribute("to_media", parentId); - }; + // check if the parent article is published. + EntityAdapter article = MirGlobal.localizer().dataModel().adapterModel().makeEntityAdapter("content", + DatabaseContent.getInstance().selectById(parentId)); + if (!MirGlobal.localizer().openPostings().allowArticlePublication((EntityContent)article.getEntity())) { + throw new ServletModuleExc("Illegal article"); + } - -} \ No newline at end of file + aSession.setAttribute("to_content", parentId); + } +}