/*\r
- * Copyright (C) 2001, 2002 The Mir-coders group\r
+ * Copyright (C) 2001, 2002 The Mir-coders group\r
*\r
* This file is part of Mir.\r
*\r
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
*\r
* In addition, as a special exception, The Mir-coders gives permission to link\r
- * the code of this program with the com.oreilly.servlet library, any library\r
- * licensed under the Apache Software License, The Sun (tm) Java Advanced\r
- * Imaging library (JAI), The Sun JIMI library (or with modified versions of\r
- * the above that use the same license as the above), and distribute linked\r
- * combinations including the two. You must obey the GNU General Public\r
- * License in all respects for all of the code used other than the above\r
- * mentioned libraries. If you modify this file, you may extend this exception\r
- * to your version of the file, but you are not obligated to do so. If you do\r
- * not wish to do so, delete this exception statement from your version.\r
+ * the code of this program with any library licensed under the Apache Software License,\r
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library\r
+ * (or with modified versions of the above that use the same license as the above),\r
+ * and distribute linked combinations including the two. You must obey the\r
+ * GNU General Public License in all respects for all of the code used other than\r
+ * the above mentioned libraries. If you modify this file, you may extend this\r
+ * exception to your version of the file, but you are not obligated to do so.\r
+ * If you do not wish to do so, delete this exception statement from your version.\r
*/\r
\r
package mircoders.servlet;\r
\r
-import java.io.IOException;\r
import java.util.GregorianCalendar;\r
import java.util.HashMap;\r
import java.util.Iterator;\r
-import java.util.List;\r
+import java.util.*;\r
+import java.util.Locale;\r
import java.util.Map;\r
-\r
import javax.servlet.http.HttpServletRequest;\r
import javax.servlet.http.HttpServletResponse;\r
-import javax.servlet.http.HttpSession;\r
\r
import mir.entity.adapter.EntityAdapterModel;\r
import mir.entity.adapter.EntityIteratorAdapter;\r
import mir.log.LoggerWrapper;\r
import mir.misc.StringUtil;\r
-import mir.module.ModuleException;\r
import mir.servlet.ServletModule;\r
import mir.servlet.ServletModuleExc;\r
-import mir.servlet.ServletModuleUserExc;\r
import mir.servlet.ServletModuleFailure;\r
-import mir.storage.StorageObjectFailure;\r
import mir.util.CachingRewindableIterator;\r
import mir.util.HTTPRequestParser;\r
import mir.util.JDBCStringRoutines;\r
import mir.util.SQLQueryBuilder;\r
-import mir.util.URLBuilder;\r
+import mir.util.*;\r
import mircoders.entity.EntityContent;\r
-import mircoders.entity.EntityUsers;\r
import mircoders.global.MirGlobal;\r
import mircoders.module.ModuleContent;\r
-import mircoders.search.IndexUtil;\r
-import mircoders.storage.DatabaseComment;\r
import mircoders.storage.DatabaseContent;\r
import mircoders.storage.DatabaseContentToTopics;\r
\r
-import org.apache.lucene.index.IndexReader;\r
-\r
-import freemarker.template.SimpleHash;\r
-\r
/*\r
* ServletModuleContent -\r
* deliver html for the article admin form.\r
*\r
- * @version $Id: ServletModuleContent.java,v 1.40 2003/03/06 05:40:40 zapata Exp $\r
+ * @version $Id: ServletModuleContent.java,v 1.52.2.11 2003/09/24 02:08:04 zapata Exp $\r
* @author rk, mir-coders\r
*\r
*/\r
\r
public class ServletModuleContent extends ServletModule\r
{\r
- private String editTemplate = configuration.getString("ServletModule.Content.ObjektTemplate");;\r
- private String listTemplate = configuration.getString("ServletModule.Content.ListTemplate");\r
-\r
private static ServletModuleContent instance = new ServletModuleContent();\r
public static ServletModule getInstance() { return instance; }\r
\r
private ServletModuleContent() {\r
super();\r
- logger = new LoggerWrapper("ServletModule.Content");\r
- try {\r
\r
- templateListString = configuration.getString("ServletModule.Content.ListTemplate");\r
- templateObjektString = configuration.getString("ServletModule.Content.ObjektTemplate");\r
- templateConfirmString = configuration.getString("ServletModule.Content.ConfirmTemplate");\r
+ logger = new LoggerWrapper("ServletModule.Content");\r
\r
+ try {\r
mainModule = new ModuleContent(DatabaseContent.getInstance());\r
}\r
- catch (StorageObjectFailure e) {\r
- logger.error("servletmodulecontent konnte nicht initialisiert werden");\r
+ catch (Throwable e) {\r
+ logger.fatal("ServletModuleContent could not be initialized: " + e.toString());\r
}\r
}\r
\r
int offset = requestParser.getIntegerWithDefault("offset", 0);\r
String selectArticleUrl = requestParser.getParameter("selectarticleurl");\r
\r
- returnArticleList(aRequest, aResponse, where, order, offset, selectArticleUrl);\r
+ returnList(aRequest, aResponse, where, order, offset, selectArticleUrl);\r
}\r
\r
public void search(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc, ServletModuleFailure {\r
String selectArticleUrl = requestParser.getParameter("selectarticleurl");\r
\r
if (searchValue.length()>0) {\r
- if (searchField.equals("contents"))\r
+ if (searchField.equals("id"))\r
+ queryBuilder.appendAndCondition(\r
+ "id='"+JDBCStringRoutines.escapeStringLiteral(searchValue)+"'");\r
+ else if (searchField.equals("contents"))\r
queryBuilder.appendAndCondition(\r
"(lower(content_data) like " + "'%" + JDBCStringRoutines.escapeStringLiteral(searchValue.toLowerCase()) + "%')"+\r
" or (lower(description) like " + "'%" + JDBCStringRoutines.escapeStringLiteral(searchValue.toLowerCase()) + "%')");\r
\r
if (searchOrder.length()>0) {\r
if (searchOrder.equals("datedesc"))\r
- queryBuilder.appendAscendingOrder("webdb_create");\r
- else if (searchOrder.equals("dateasc"))\r
queryBuilder.appendDescendingOrder("webdb_create");\r
+ else if (searchOrder.equals("dateasc"))\r
+ queryBuilder.appendAscendingOrder("webdb_create");\r
else if (searchOrder.equals("title"))\r
- queryBuilder.appendDescendingOrder("title");\r
+ queryBuilder.appendAscendingOrder("title");\r
else if (searchOrder.equals("creator"))\r
- queryBuilder.appendDescendingOrder("creator");\r
+ queryBuilder.appendAscendingOrder("creator");\r
}\r
\r
- returnArticleList(aRequest, aResponse, queryBuilder.getWhereClause(), queryBuilder.getOrderByClause(), 0, selectArticleUrl);\r
+ returnList(aRequest, aResponse, queryBuilder.getWhereClause(), queryBuilder.getOrderByClause(), 0, selectArticleUrl);\r
}\r
catch (Throwable e) {\r
throw new ServletModuleFailure(e);\r
}\r
}\r
\r
- public void add(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {\r
- _showObject(null, req, res);\r
+ public void add(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {\r
+ editObject(aRequest, aResponse, null);\r
}\r
\r
\r
- public void insert(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc\r
+ public void insert(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc\r
{\r
//theLog.printDebugInfo(":: content :: trying to insert");\r
try {\r
- EntityUsers user = _getUser(req);\r
- Map withValues = getIntersectingValues(req, DatabaseContent.getInstance());\r
+ Map withValues = getIntersectingValues(aRequest, DatabaseContent.getInstance());\r
\r
String now = StringUtil.date2webdbDate(new GregorianCalendar());\r
withValues.put("date", now);\r
withValues.put("publish_path", StringUtil.webdbDate2path(now));\r
- withValues.put("to_publisher", user.getId());\r
+ withValues.put("to_publisher", ServletHelper.getUser(aRequest).getId());\r
withValues.put("is_produced", "0");\r
if (!withValues.containsKey("is_published"))\r
withValues.put("is_published","0");\r
if (!withValues.containsKey("is_html"))\r
withValues.put("is_html","0");\r
\r
- String id = mainModule.add(withValues);\r
- DatabaseContentToTopics.getInstance().setTopics(id,req.getParameterValues("to_topic"));\r
+ String webdbCreate = (String) withValues.get("webdb_create");\r
+ if (webdbCreate==null || webdbCreate.trim().length()==0)\r
+ withValues.remove("webdb_create");\r
\r
- _showObject(id, req, res);\r
- }\r
- catch (Throwable e) {\r
- throw new ServletModuleFailure(e);\r
- }\r
- }\r
-\r
- public void delete(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc\r
- {\r
- EntityUsers user = _getUser(req);\r
-\r
- String idParam = req.getParameter("id");\r
- if (idParam == null) throw new ServletModuleExc("Invalid call: id missing");\r
-\r
- String confirmParam = req.getParameter("confirm");\r
- String cancelParam = req.getParameter("cancel");\r
+ String id = mainModule.add(withValues);\r
+ logAdminUsage(aRequest, id, "object added");\r
\r
- logger.info("where = " + req.getParameter("where"));\r
+ List topics;\r
\r
- if (confirmParam == null && cancelParam == null) {\r
+ DatabaseContentToTopics.getInstance().setTopics(id, aRequest.getParameterValues("to_topic"));\r
\r
- SimpleHash mergeData = new SimpleHash();\r
- mergeData.put("module", "Content");\r
- mergeData.put("infoString", "Content: " + idParam);\r
- mergeData.put("id", idParam);\r
- mergeData.put("where", req.getParameter("where"));\r
- mergeData.put("order", req.getParameter("order"));\r
- mergeData.put("offset", req.getParameter("offset"));\r
- deliver(req, res, mergeData, templateConfirmString);\r
+ editObject(aRequest, aResponse, id);\r
}\r
- else {\r
- if (confirmParam!= null && !confirmParam.equals("")) {\r
- try {\r
- mainModule.deleteById(idParam);\r
-\r
- /** @todo the following two should be implied in\r
- * DatabaseContent */\r
-\r
- //delete rows in the content_x_topic-table\r
- DatabaseContentToTopics.getInstance().deleteByContentId(idParam);\r
- //delete rows in the comment-table\r
- DatabaseComment.getInstance().deleteByContentId(idParam);\r
- //delete from lucene index, if any\r
- String index = configuration.getString("IndexPath");\r
- if (IndexReader.indexExists(index)){\r
- IndexUtil.unindexID(idParam,index);\r
- }\r
-\r
- }\r
- catch (Throwable e) {\r
- throw new ServletModuleFailure(e);\r
- }\r
- list(req,res);\r
- }\r
- else {\r
- // Datensatz anzeigen\r
- _showObject(idParam, req, res);\r
- }\r
+ catch (Throwable e) {\r
+ throw new ServletModuleFailure(e);\r
}\r
}\r
\r
- public void edit(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc\r
+ public void edit(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc\r
{\r
- String idParam = req.getParameter("id");\r
+ String idParam = aRequest.getParameter("id");\r
if (idParam == null)\r
throw new ServletModuleExc("Invalid call: id not supplied ");\r
- _showObject(idParam, req, res);\r
+ editObject(aRequest, aResponse, idParam);\r
}\r
\r
// methods for attaching media file\r
- public void attach(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc\r
+ public void attach(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc\r
{\r
- String mediaIdParam = req.getParameter("mid");\r
- String idParam = req.getParameter("cid");\r
- if (idParam == null||mediaIdParam==null) throw new ServletModuleExc("smod content :: attach :: cid/mid missing");\r
+ String mediaIdParam = aRequest.getParameter("mid");\r
+ String articleId = aRequest.getParameter("articleid");\r
+\r
+ if (articleId == null || mediaIdParam==null)\r
+ throw new ServletModuleExc("smod content :: attach :: articleid/mid missing");\r
\r
try {\r
- EntityContent entContent = (EntityContent)mainModule.getById(idParam);\r
+ EntityContent entContent = (EntityContent) mainModule.getById(articleId);\r
entContent.attach(mediaIdParam);\r
}\r
- catch(ModuleException e) {\r
- logger.error("smod content :: attach :: could not get entityContent");\r
- }\r
- catch(StorageObjectFailure e) {\r
- logger.error("smod content :: attach :: could not get entityContent");\r
+ catch(Throwable e) {\r
+ throw new ServletModuleFailure(e);\r
}\r
\r
- _showObject(idParam, req, res);\r
+ logAdminUsage(aRequest, articleId, "media " + mediaIdParam + " attached");\r
+\r
+ editObject(aRequest, aResponse, articleId);\r
}\r
\r
- public void dettach(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc\r
+ public void dettach(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc\r
{\r
- String cidParam = req.getParameter("cid");\r
- String midParam = req.getParameter("mid");\r
- if (cidParam == null)\r
- throw new ServletModuleExc("smod content :: dettach :: cid missing");\r
+ String articleId = aRequest.getParameter("articleid");\r
+ String midParam = aRequest.getParameter("mid");\r
+ if (articleId == null)\r
+ throw new ServletModuleExc("smod content :: dettach :: articleid missing");\r
if (midParam == null)\r
throw new ServletModuleExc("smod content :: dettach :: mid missing");\r
\r
try {\r
- EntityContent entContent = (EntityContent)mainModule.getById(cidParam);\r
- entContent.dettach(cidParam,midParam);\r
- }\r
- catch(ModuleException e) {\r
- logger.error("smod content :: dettach :: could not get entityContent");\r
+ EntityContent entContent = (EntityContent)mainModule.getById(articleId);\r
+ entContent.dettach(articleId, midParam);\r
}\r
- catch(StorageObjectFailure e) {\r
- logger.error("smod content :: dettach :: could not get entityContent");\r
+ catch(Throwable e) {\r
+ throw new ServletModuleFailure(e);\r
}\r
\r
- _showObject(cidParam, req, res);\r
+ logAdminUsage(aRequest, articleId, "media " + midParam + " deattached");\r
+\r
+ editObject(aRequest, aResponse, articleId);\r
}\r
\r
public void update(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc\r
throw new ServletModuleExc("Wrong call: (id) is missing");\r
\r
Map withValues = getIntersectingValues(aRequest, DatabaseContent.getInstance());\r
- String[] topic_id = aRequest.getParameterValues("to_topic");\r
+\r
String content_id = aRequest.getParameter("id");\r
\r
withValues.put("is_produced", "0");\r
if (!withValues.containsKey("is_html"))\r
withValues.put("is_html","0");\r
\r
+ String webdbCreate = (String) withValues.get("webdb_create");\r
+ if (webdbCreate==null || webdbCreate.trim().length()==0)\r
+ withValues.remove("webdb_create");\r
+\r
String id = mainModule.set(withValues);\r
- DatabaseContentToTopics.getInstance().setTopics(aRequest.getParameter("id"),topic_id);\r
\r
- String whereParam = aRequest.getParameter("where");\r
- String orderParam = aRequest.getParameter("order");\r
+ logAdminUsage(aRequest, id, "object modified");\r
+\r
+ DatabaseContentToTopics.getInstance().setTopics(aRequest.getParameter("id"), aRequest.getParameterValues("to_topic"));\r
\r
- if (returnUrl!=null){\r
+ if (returnUrl!=null && !returnUrl.equals("")){\r
redirect(aResponse, returnUrl);\r
}\r
else\r
- _showObject(idParam, aRequest, aResponse);\r
+ editObject(aRequest, aResponse, idParam);\r
}\r
catch (Throwable e) {\r
throw new ServletModuleFailure(e);\r
}\r
}\r
\r
-/*\r
- * HelperMethod shows the basic article editing form.\r
- *\r
- * if the "id" parameter is null, it means show an empty form to add a new\r
- * article.\r
-*/\r
- public void _showObject(String id, HttpServletRequest aRequest, HttpServletResponse aResponse)\r
+\r
+ /**\r
+ * HelperMethod shows the basic article editing form.\r
+ *\r
+ * if the "id" parameter is null, it means show an empty form to add a new\r
+ * article.\r
+ *\r
+ * @param id\r
+ * @param aRequest\r
+ * @param aResponse\r
+ * @throws ServletModuleExc\r
+ */\r
+ public void editObject(HttpServletRequest aRequest, HttpServletResponse aResponse, String id)\r
throws ServletModuleExc {\r
try {\r
HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
- Map responseData = ServletHelper.makeGenerationData(getLocale(aRequest));\r
+ Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});\r
EntityAdapterModel model = MirGlobal.localizer().dataModel().adapterModel();\r
Map article;\r
URLBuilder urlBuilder = new URLBuilder();\r
}\r
responseData.put("article", article);\r
\r
+ List topicsList = new Vector();\r
+\r
+ String[] topicCategories = configuration.getStringArray("Mir.Localizer.Admin.TopicLists");\r
+\r
+ if (topicCategories.length==0 ) {\r
+ Map categoryMap = new HashMap();\r
+ categoryMap.put("key", "topic");\r
+ categoryMap.put("listtype", "0");\r
+ categoryMap.put("listparameter", "3");\r
+ categoryMap.put("items",\r
+ new EntityIteratorAdapter("", "title",\r
+ 20, MirGlobal.localizer().dataModel().adapterModel(), "topic"));\r
+ topicsList.add(categoryMap);\r
+ }\r
+ else\r
+ {\r
+\r
+ for (int i = 0; i < topicCategories.length; i++) {\r
+ try {\r
+ Map categoryMap = new HashMap();\r
+ List parts = StringRoutines.splitString(topicCategories[i], ":");\r
+ String key = null;\r
+ String listtype = "0";\r
+ String listparameter = "5";\r
+ String where = "";\r
+ String order = "";\r
+\r
+ if (parts.size() > 0)\r
+ key = (String) parts.get(0);\r
+ if (parts.size() > 1)\r
+ listtype = (String) parts.get(1);\r
+ if (parts.size() > 2)\r
+ listparameter = (String) parts.get(2);\r
+ if (parts.size() > 3)\r
+ where = (String) parts.get(3);\r
+ if (parts.size() > 4)\r
+ order = (String) parts.get(4);\r
+\r
+ if (key != null) {\r
+ categoryMap.put("key", key);\r
+ categoryMap.put("listtype", listtype);\r
+ categoryMap.put("listparameter", listparameter);\r
+ categoryMap.put("items",\r
+ new EntityIteratorAdapter(where, order,\r
+ 20, MirGlobal.localizer().dataModel().adapterModel(), "topic"));\r
+ topicsList.add(categoryMap);\r
+ }\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("error while preparing topics: " + t.toString());\r
+ }\r
+ }\r
+ }\r
+\r
+ responseData.put("topics", topicsList);\r
+\r
responseData.put("returnurl", requestParser.getParameter("returnurl"));\r
responseData.put("thisurl", urlBuilder.getQuery());\r
\r
- ServletHelper.generateResponse(aResponse.getWriter(), responseData, editTemplate);\r
+ ServletHelper.generateResponse(aResponse.getWriter(), responseData, editGenerator);\r
}\r
catch (Throwable e) {\r
throw new ServletModuleFailure(e);\r
}\r
}\r
\r
- public void returnArticleList(\r
+ public void returnList(HttpServletRequest aRequest, HttpServletResponse aResponse,\r
+ String aWhereClause, String anOrderByClause, int anOffset) throws ServletModuleExc {\r
+ this.returnList(aRequest, aResponse, aWhereClause, anOrderByClause, anOffset, null);\r
+ }\r
+\r
+ public void returnList(\r
HttpServletRequest aRequest,\r
HttpServletResponse aResponse,\r
String aWhereClause,\r
HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
URLBuilder urlBuilder = new URLBuilder();\r
EntityAdapterModel model;\r
- int nrArticlesPerPage = 20;\r
int count;\r
\r
try {\r
- Map responseData = ServletHelper.makeGenerationData(getLocale(aRequest));\r
+ Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});\r
model = MirGlobal.localizer().dataModel().adapterModel();\r
\r
Object articleList =\r
new CachingRewindableIterator(\r
- new EntityIteratorAdapter( aWhereClause, anOrderByClause, nrArticlesPerPage,\r
- MirGlobal.localizer().dataModel().adapterModel(), "content", nrArticlesPerPage, anOffset)\r
+ new EntityIteratorAdapter( aWhereClause, anOrderByClause, nrEntitiesPerListPage,\r
+ MirGlobal.localizer().dataModel().adapterModel(), "content", nrEntitiesPerListPage, anOffset)\r
);\r
\r
responseData.put("nexturl", null);\r
responseData.put("offset" , new Integer(anOffset).toString());\r
responseData.put("thisurl" , urlBuilder.getQuery());\r
\r
- if (count>=anOffset+nrArticlesPerPage) {\r
- urlBuilder.setValue("offset", (anOffset + nrArticlesPerPage));\r
+ if (count>=anOffset+nrEntitiesPerListPage) {\r
+ urlBuilder.setValue("offset", (anOffset + nrEntitiesPerListPage));\r
responseData.put("nexturl" , urlBuilder.getQuery());\r
}\r
\r
if (anOffset>0) {\r
- urlBuilder.setValue("offset", Math.max(anOffset - nrArticlesPerPage, 0));\r
+ urlBuilder.setValue("offset", Math.max(anOffset - nrEntitiesPerListPage, 0));\r
responseData.put("prevurl" , urlBuilder.getQuery());\r
}\r
\r
\r
responseData.put("from" , Integer.toString(anOffset+1));\r
responseData.put("count", Integer.toString(count));\r
- responseData.put("to", Integer.toString(Math.min(anOffset+nrArticlesPerPage, count)));\r
+ responseData.put("to", Integer.toString(Math.min(anOffset+nrEntitiesPerListPage, count)));\r
responseData.put("offset" , Integer.toString(anOffset));\r
responseData.put("order", anOrderByClause);\r
responseData.put("where" , aWhereClause);\r
\r
- ServletHelper.generateResponse(aResponse.getWriter(), responseData, listTemplate);\r
+ ServletHelper.generateResponse(aResponse.getWriter(), responseData, listGenerator);\r
}\r
catch (Throwable e) {\r
throw new ServletModuleFailure(e);\r
urlBuilder.setValue("childid", requestParser.getParameter("id"));\r
urlBuilder.setValue("returnurl", requestParser.getParameter("returnurl"));\r
\r
- returnArticleList(aRequest, aResponse, "", "", 0, urlBuilder.getQuery());\r
+ returnList(aRequest, aResponse, "", "", 0, urlBuilder.getQuery());\r
}\r
catch (Throwable e) {\r
throw new ServletModuleFailure(e);\r
if (articleId == null)\r
throw new ServletModuleExc("ServletModuleContent.listchildren: article_id not set!");\r
\r
- returnArticleList(aRequest, aResponse, "to_content = " + articleId, "", 0, null);\r
+ returnList(aRequest, aResponse, "to_content = " + articleId, "", 0, null);\r
}\r
catch (Throwable e) {\r
throw new ServletModuleFailure(e);\r
article.setValueForProperty("to_content", parentId);\r
article.setProduced(false);\r
article.update();\r
+ logAdminUsage(aRequest, articleId, "parent set to " + parentId);\r
}\r
catch(Throwable e) {\r
logger.error("ServletModuleContent.setparent: " + e.getMessage());\r
article.setValueForProperty("to_content", "");\r
article.setProduced(false);\r
article.update();\r
+ logAdminUsage(aRequest, articleId, "parent cleared");\r
}\r
catch(Throwable e) {\r
e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));\r
\r
redirect(aResponse, returnUrl);\r
}\r
-\r
- private EntityUsers _getUser(HttpServletRequest req)\r
- {\r
- HttpSession session=req.getSession(false);\r
-\r
- return (EntityUsers)session.getAttribute("login.uid");\r
- }\r
}\r