01: /**
02: * LibreSource
03: * Copyright (C) 2004-2008 Artenum SARL / INRIA
04: * http://www.libresource.org - contact@artenum.com
05: *
06: * This file is part of the LibreSource software,
07: * which can be used and distributed under license conditions.
08: * The license conditions are provided in the LICENSE.TXT file
09: * at the root path of the packaging that enclose this file.
10: * More information can be found at
11: * - http://dev.libresource.org/home/license
12: *
13: * Initial authors :
14: *
15: * Guillaume Bort / INRIA
16: * Francois Charoy / Universite Nancy 2
17: * Julien Forest / Artenum
18: * Claude Godart / Universite Henry Poincare
19: * Florent Jouille / INRIA
20: * Sebastien Jourdain / INRIA / Artenum
21: * Yves Lerumeur / Artenum
22: * Pascal Molli / Universite Henry Poincare
23: * Gerald Oster / INRIA
24: * Mariarosa Penzi / Artenum
25: * Gerard Sookahet / Artenum
26: * Raphael Tani / INRIA
27: *
28: * Contributors :
29: *
30: * Stephane Bagnier / Artenum
31: * Amadou Dia / Artenum-IUP Blois
32: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33: */package org.libresource.web.controllers.wiki;
34:
35: import org.libresource.Libresource;
36:
37: import org.libresource.kernel.KernelConstants;
38: import org.libresource.kernel.LibresourceSecurityException;
39: import org.libresource.kernel.interfaces.KernelService;
40:
41: import org.libresource.web.Controller;
42:
43: import org.libresource.wiki.WikiConstants;
44: import org.libresource.wiki.ejb.model.PageResourceValue;
45: import org.libresource.wiki.interfaces.LibresourceWikiService;
46:
47: import java.net.URI;
48:
49: import javax.servlet.http.HttpServletRequest;
50: import javax.servlet.http.HttpServletResponse;
51:
52: public class EditPageContentController implements Controller {
53: public Object process(URI uri, HttpServletRequest request,
54: HttpServletResponse response) throws Exception {
55: if (request.getParameter("cancel") != null) {
56: return uri;
57: }
58:
59: if (request.getParameter("content") == null) {
60: KernelService kernelService = (KernelService) Libresource
61: .getService(KernelConstants.SERVICE);
62:
63: if (!kernelService.checkSecurity(uri,
64: KernelConstants.SECURITY_UPDATE)) {
65: throw new LibresourceSecurityException(uri,
66: KernelConstants.SECURITY_UPDATE);
67: }
68:
69: LibresourceWikiService libresourceWikiService = (LibresourceWikiService) Libresource
70: .getService(WikiConstants.SERVICE);
71: PageResourceValue page = libresourceWikiService
72: .getPage(uri);
73: request.setAttribute("page", page);
74: request.setAttribute("content", page.getContent());
75: request.setAttribute("versionable", new Boolean(page
76: .getVersionable()));
77:
78: return "/pages/modules/wiki/viewPage.jsp";
79: }
80:
81: String comment = "(no comment)";
82:
83: if ((request.getParameter("comment") != null)
84: && (request.getParameter("comment").trim().length() != 0)) {
85: comment = request.getParameter("comment");
86: }
87:
88: LibresourceWikiService libresourceWikiService = (LibresourceWikiService) Libresource
89: .getService(WikiConstants.SERVICE);
90: libresourceWikiService.editPageContent(uri, request
91: .getParameter("content"), comment);
92:
93: return uri;
94: }
95: }
|