r1301 - in xwiki/trunk/src: main/java/com/xpn/xwiki main/java/com/xpn/xwiki/web main/resources main/web/WEB-INF main/web/templates test/cactus/com/xpn/xwiki/test test/resources
Phung Hai Nam
namphunghai at users.forge.objectweb.org
Mon Sep 11 09:20:12 CEST 2006
Author: namphunghai
Date: 2006-09-11 09:20:11 +0200 (Mon, 11 Sep 2006)
New Revision: 1301
Added:
xwiki/trunk/src/main/web/templates/captcha.vm
Modified:
xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java
xwiki/trunk/src/main/java/com/xpn/xwiki/web/EditAction.java
xwiki/trunk/src/main/java/com/xpn/xwiki/web/PreviewAction.java
xwiki/trunk/src/main/java/com/xpn/xwiki/web/SaveAction.java
xwiki/trunk/src/main/resources/ApplicationResources.properties
xwiki/trunk/src/main/resources/xwiki.hbm.xml
xwiki/trunk/src/main/web/WEB-INF/struts-config.xml
xwiki/trunk/src/main/web/WEB-INF/xwiki.cfg
xwiki/trunk/src/main/web/templates/edit.vm
xwiki/trunk/src/main/web/templates/editprefs.vm
xwiki/trunk/src/main/web/templates/preview.vm
xwiki/trunk/src/main/web/templates/previewfooter.vm
xwiki/trunk/src/main/web/templates/previewheader.vm
xwiki/trunk/src/main/web/templates/wysiwyg.vm
xwiki/trunk/src/test/cactus/com/xpn/xwiki/test/ServletCaptchaTest.java
xwiki/trunk/src/test/resources/xwiki.hbm.xml
Log:
XWIKI-118. Update the code of captcha for editting (not yet comment and register)
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java 2006-09-11 07:20:11 UTC (rev 1301)
@@ -259,14 +259,14 @@
"Could not initialize main XWiki context", e);
}
}
-
+
public XWikiStoreInterface getNotCacheStore() {
XWikiStoreInterface store = getStore();
if (store instanceof XWikiCacheStoreInterface)
store = ((XWikiCacheStoreInterface) store).getStore();
return store;
}
-
+
public XWikiHibernateStore getHibernateStore() {
XWikiStoreInterface store = getStore();
if (store instanceof XWikiHibernateStore)
@@ -584,7 +584,7 @@
// HACK: can anyone think of a better way to do this?
XWikiCacheListener.setXWiki(this);
-
+
// Make sure these classes exists
if (noupdate) {
getPrefsClass(context);
@@ -1904,6 +1904,13 @@
needsUpdate |= bclass.addTextField("macros_wiki", "Macros for the Wiki Parser", 60);
needsUpdate |= bclass.addTextAreaField("macros_mapping", "Macros Mapping", 60, 15);
+ needsUpdate |= bclass.addStaticListField("registration_anonymous", "Anonymous", "Image|Text|---");
+ needsUpdate |= bclass.addStaticListField("registration_registered", "Registered", "---|Image|Text");
+ needsUpdate |= bclass.addStaticListField("edit_anonymous", "Anonymous", "Image|Text|---");
+ needsUpdate |= bclass.addStaticListField("edit_registered", "Registered", "---|Image|Text");
+ needsUpdate |= bclass.addStaticListField("comment_anonymous", "Anonymous", "Image|Text|---");
+ needsUpdate |= bclass.addStaticListField("comment_registered", "Registered", "---|Image|Text");
+
needsUpdate |= bclass.addTextField("notification_pages", "Notification Pages", 60);
// New fields for the XWiki 1.0 skin
@@ -3653,7 +3660,7 @@
return cacheService;
}
}
-
+
public String getURLContent(String surl) throws IOException {
HttpClient client = new HttpClient();
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/web/EditAction.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/web/EditAction.java 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/web/EditAction.java 2006-09-11 07:20:11 UTC (rev 1301)
@@ -30,6 +30,7 @@
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.plugin.captcha.CaptchaPluginApi;
import com.xpn.xwiki.api.Document;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.doc.XWikiLock;
@@ -45,14 +46,19 @@
XWikiForm form = context.getForm();
VelocityContext vcontext = (VelocityContext) context.get("vcontext");
- // Check for edit section
- String sectionContent = "";
- int sectionNumber = 0;
- if (request.getParameter("section") != null && xwiki.hasSectionEdit(context)) {
+ // Add captcha plugin to avoid spam robots
+ CaptchaPluginApi captchaPluginApi = (CaptchaPluginApi) xwiki.getPluginApi("jcaptcha", context);
+ if (captchaPluginApi != null) vcontext.put("captchaPlugin", captchaPluginApi);
+ else vcontext.put("captchaPlugin", "noCaptchaPlugin");
+
+ // Check for edit section
+ String sectionContent = "";
+ int sectionNumber = 0;
+ if (request.getParameter("section") != null && xwiki.hasSectionEdit(context)) {
sectionNumber = Integer.parseInt(request.getParameter("section"));
sectionContent = doc.getContentOfSection(sectionNumber);
- }
- vcontext.put("sectionNumber",new Integer(sectionNumber));
+ }
+ vcontext.put("sectionNumber",new Integer(sectionNumber));
synchronized (doc) {
XWikiDocument tdoc = (XWikiDocument) context.get("tdoc");
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/web/PreviewAction.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/web/PreviewAction.java 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/web/PreviewAction.java 2006-09-11 07:20:11 UTC (rev 1301)
@@ -18,6 +18,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*
* @author sdumitriu
+ * @author Phung Hai Nam (phunghainam at xwiki.com)
*/
package com.xpn.xwiki.web;
@@ -25,6 +26,9 @@
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.plugin.captcha.CaptchaPluginApi;
+import com.xpn.xwiki.plugin.captcha.CaptchaParams;
import com.xpn.xwiki.api.Document;
import com.xpn.xwiki.doc.XWikiDocument;
@@ -58,12 +62,25 @@
public String render(XWikiContext context) throws XWikiException {
XWikiRequest request = context.getRequest();
+ XWiki xwiki = context.getWiki();
String formaction = request.getParameter("formaction");
if (formaction == null || formaction.equals("") || formaction.equals("_preview_")) {
XWikiDocument doc = context.getDoc();
XWikiForm form = context.getForm();
VelocityContext vcontext = (VelocityContext) context.get("vcontext");
+ Boolean isResponseCorrect = Boolean.TRUE;
+ CaptchaPluginApi captchaPluginApi = (CaptchaPluginApi) xwiki.getPluginApi("jcaptcha", context);
+ if (captchaPluginApi != null) vcontext.put("captchaPlugin", captchaPluginApi);
+ else vcontext.put("captchaPlugin", "noCaptchaPlugin");
+ if (captchaPluginApi != null) {
+ // verify captcha
+ CaptchaParams captchaParams = captchaPluginApi.getCaptchaParams(context.getUser(), "edit");
+ isResponseCorrect = captchaPluginApi.verifyCaptcha(captchaParams);
+ }
+ // put isResponseCorrect value to vcontext for save action
+ vcontext.put("isResponseCorrect", isResponseCorrect.toString());
+
String language = ((EditForm) form).getLanguage();
XWikiDocument tdoc;
@@ -97,7 +114,10 @@
tdoc2.readFromTemplate(((EditForm) form).getTemplate(), context);
tdoc2.readFromForm((EditForm) form, context);
}
- return "preview";
+ // recomfirm edit (captcha) when jcaptcha is not correct
+ if ((context.get("recheckcaptcha") != null) && ((Boolean)context.get("recheckcaptcha")).booleanValue())
+ return "captcha";
+ else return "preview";
}
return "disambiguation";
}
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/web/SaveAction.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/web/SaveAction.java 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/web/SaveAction.java 2006-09-11 07:20:11 UTC (rev 1301)
@@ -26,16 +26,32 @@
import com.xpn.xwiki.XWiki;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.plugin.captcha.CaptchaPluginApi;
+import com.xpn.xwiki.plugin.captcha.CaptchaParams;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.doc.XWikiLock;
-public class SaveAction extends XWikiAction {
+public class SaveAction extends PreviewAction {
public boolean save(XWikiContext context) throws XWikiException {
XWiki xwiki = context.getWiki();
XWikiRequest request = context.getRequest();
XWikiDocument doc = context.getDoc();
XWikiForm form = context.getForm();
+ // Confirm edit to avoid spam robots
+ Boolean isResponseCorrect = Boolean.TRUE;
+ CaptchaPluginApi captchaPluginApi = (CaptchaPluginApi) xwiki.getPluginApi("jcaptcha", context);
+ // If 'save' action after preview
+ String isResponsePreviewCorrect = request.getParameter("isResponsePreviewCorrect");
+ if ((isResponsePreviewCorrect != null))
+ isResponseCorrect = Boolean.valueOf(isResponsePreviewCorrect);
+ else if (captchaPluginApi != null) {
+ CaptchaParams captchaParams = captchaPluginApi.getCaptchaParams(context.getUser(), "edit");
+ isResponseCorrect = captchaPluginApi.verifyCaptcha(captchaParams);
+ }
+ // If captcha is not correct it will be required again
+ if (!isResponseCorrect.booleanValue()) return true;
+
// This is pretty useless, since contexts aren't shared between threads.
// It just slows down execution.
String title = doc.getTitle();
@@ -112,7 +128,12 @@
XWikiException e = (XWikiException) context.get("exception");
if ((e != null) && (e.getCode() == XWikiException.ERROR_XWIKI_APP_DOCUMENT_NOT_EMPTY)) {
return "docalreadyexists";
- }
- return "exception";
- }
+ } else if (e != null) {
+ return "exception";
+ } else {
+ // If captcha is not correct it will require to confirm again
+ context.put("recheckcaptcha",new Boolean(true));
+ return super.render(context);
+ }
+ }
}
Modified: xwiki/trunk/src/main/resources/ApplicationResources.properties
===================================================================
--- xwiki/trunk/src/main/resources/ApplicationResources.properties 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/resources/ApplicationResources.properties 2006-09-11 07:20:11 UTC (rev 1301)
@@ -478,4 +478,12 @@
editHistory=History
switchto=Switch to
-sectionEdit=Sectional Editing
\ No newline at end of file
+sectionEdit=Sectional Editing
+
+antispam=Antispam
+registration_anonymous=Anonymous
+registration_registered= Registered
+edit_anonymous=Anonymous
+edit_registered=Registered
+comment_anonymous=Anonymous
+comment_registered=Registered
\ No newline at end of file
Modified: xwiki/trunk/src/main/resources/xwiki.hbm.xml
===================================================================
--- xwiki/trunk/src/main/resources/xwiki.hbm.xml 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/resources/xwiki.hbm.xml 2006-09-11 07:20:11 UTC (rev 1301)
@@ -702,6 +702,24 @@
<property name="languages" type="string">
<column name="XWP_LANGUAGES" length="255" />
</property>
+ <property name="registration_anonymous" type="string">
+ <column name="XWP_REGISTRATION_ANONYMUOS" length="255" />
+ </property>
+ <property name="registration_registered" type="string">
+ <column name="XWP_REGISTRATION_REGISTERED" length="255" />
+ </property>
+ <property name="edit_anonymous" type="string">
+ <column name="XWP_EDIT_ANONYMUOS" length="255" />
+ </property>
+ <property name="edit_registered" type="string">
+ <column name="XWP_EDIT_REGISTERED" length="255" />
+ </property>
+ <property name="comment_anonymous" type="string">
+ <column name="XWP_COMMENT_ANONYMUOS" length="255" />
+ </property>
+ <property name="comment_registered" type="string">
+ <column name="XWP_COMMENT_REGISTERED" length="255" />
+ </property>
</class>
<!-- XWikiComments custom mapping -->
Modified: xwiki/trunk/src/main/web/WEB-INF/struts-config.xml
===================================================================
--- xwiki/trunk/src/main/web/WEB-INF/struts-config.xml 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/WEB-INF/struts-config.xml 2006-09-11 07:20:11 UTC (rev 1301)
@@ -128,6 +128,7 @@
name="preview"
scope="request">
<forward name="preview" path="/templates/preview.vm"/>
+ <forward name="captcha" path="/templates/captcha.vm"/>
</action>
<action path="/save/"
@@ -366,9 +367,16 @@
scope="request">
</action>
+ <action path="/jcaptcha/"
+ type="com.octo.captcha.module.struts.image.RenderImageCaptchaAction">
+ </action>
+
</action-mappings>
<controller processorClass="com.xpn.xwiki.web.XWikiRequestProcessor"
debug="0" contentType="text/html"/>
+ <!-- ============================ Plugins =============================== -->
+ <plug-in className="com.octo.captcha.module.struts.CaptchaServicePlugin"/>
+
</struts-config>
Modified: xwiki/trunk/src/main/web/WEB-INF/xwiki.cfg
===================================================================
--- xwiki/trunk/src/main/web/WEB-INF/xwiki.cfg 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/WEB-INF/xwiki.cfg 2006-09-11 07:20:11 UTC (rev 1301)
@@ -20,7 +20,7 @@
xwiki.store.cache=1
xwiki.store.cache.capacity=100
xwiki.monitor=1
-xwiki.plugins=com.xpn.xwiki.monitor.api.MonitorPlugin,com.xpn.xwiki.plugin.calendar.CalendarPlugin,com.xpn.xwiki.plugin.feed.FeedPlugin,com.xpn.xwiki.plugin.ldap.LDAPPlugin,com.xpn.xwiki.plugin.google.GooglePlugin,com.xpn.xwiki.plugin.flickr.FlickrPlugin,com.xpn.xwiki.plugin.mail.MailPlugin,com.xpn.xwiki.plugin.packaging.PackagePlugin,com.xpn.xwiki.plugin.query.QueryPlugin,com.xpn.xwiki.plugin.graphviz.GraphVizPlugin,com.xpn.xwiki.plugin.svg.SVGPlugin,com.xpn.xwiki.plugin.charts.ChartingPlugin,com.xpn.xwiki.plugin.fileupload.FileUploadPlugin,com.xpn.xwiki.plugin.laszlo.LaszloPlugin,com.xpn.xwiki.plugin.image.ImagePlugin,com.xpn.xwiki.plugin.packaging.PackagePlugin
+xwiki.plugins=com.xpn.xwiki.monitor.api.MonitorPlugin,com.xpn.xwiki.plugin.calendar.CalendarPlugin,com.xpn.xwiki.plugin.feed.FeedPlugin,com.xpn.xwiki.plugin.ldap.LDAPPlugin,com.xpn.xwiki.plugin.google.GooglePlugin,com.xpn.xwiki.plugin.flickr.FlickrPlugin,com.xpn.xwiki.plugin.mail.MailPlugin,com.xpn.xwiki.plugin.packaging.PackagePlugin,com.xpn.xwiki.plugin.query.QueryPlugin,com.xpn.xwiki.plugin.graphviz.GraphVizPlugin,com.xpn.xwiki.plugin.svg.SVGPlugin,com.xpn.xwiki.plugin.charts.ChartingPlugin,com.xpn.xwiki.plugin.fileupload.FileUploadPlugin,com.xpn.xwiki.plugin.laszlo.LaszloPlugin,com.xpn.xwiki.plugin.image.ImagePlugin,com.xpn.xwiki.plugin.packaging.PackagePlugin, com.xpn.xwiki.plugin.captcha.CaptchaPlugin
# This parameter allows XWiki to operate in Hosting mode
# allowing to create multiple wikis having their own database
@@ -55,6 +55,7 @@
xwiki.plugin.image.cache.capacity=30
+xwiki.plugin.captcha=1
## Personal config
xwiki.superadminpassword=toto
@@ -72,3 +73,4 @@
# This parameter will activate the sectional editing
xwiki.section.edit=1
+
Added: xwiki/trunk/src/main/web/templates/captcha.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/captcha.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/captcha.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -0,0 +1,29 @@
+#template("xwiki.vm")
+#template("httpheader.vm")
+#template("header.vm")
+#template("previewheader.vm")
+ <div id="xwikicontent">
+<form id="edit" method="post" action="$doc.getURL("save")">
+#if (!$captchaPlugin.equals("noCaptchaPlugin"))
+#set($captchaParams = $captchaPlugin.getCaptchaParams($context.user,"edit"))
+$captchaPlugin.displayCaptcha($captchaParams,"wiki_captcha")
+<br />
+#end
+<p>
+<input type="hidden" name="content" value="$xwiki.getFormEncoded($tdoc.content)" />
+<input type="hidden" name="parent" value="$!doc.getParent()" />
+<input type="hidden" name="creator" value="$!doc.getCreator()" />
+<input type="hidden" name="title" value="$!tdoc.getTitle()" />
+<input type="hidden" name="defaultLanguage" value="$!doc.getDefaultLanguage()" />
+<input type="hidden" name="template" value="$!tdoc.getTemplate()" />
+<input type="hidden" name="xredirect" value="$!request.getParameter("xredirect")" />
+<input type="hidden" name="xnotification" value="$!request.getParameter("xnotification")" />
+<input type="hidden" name="language" value="$!request.getParameter("language")" />
+</p>
+<div id="xwikiobject">
+#template("hiddenobject.vm")
+</div>
+</form>
+</div>
+#template("previewfooter.vm")
+#template("footer.vm")
Modified: xwiki/trunk/src/main/web/templates/edit.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/edit.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/edit.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -81,7 +81,11 @@
// -->
</script>
$msg.get("helponsyntax") <a href="" onClick="openHelp(); return false;">$msg.get("xwikisyntax")</a>
-<br /><br />
+#if (!$captchaPlugin.equals("noCaptchaPlugin"))
+#set($captchaParams = $captchaPlugin.getCaptchaParams($context.user,"edit"))
+$captchaPlugin.displayCaptcha($captchaParams,"wiki_captcha")
+#end
+<br />
#if ($tdoc.language=="")
$msg.get("parent"): <input type="text" name="parent" value="$!doc.parent" size="40" />
<br/><br/>
Modified: xwiki/trunk/src/main/web/templates/editprefs.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/editprefs.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/editprefs.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -28,7 +28,7 @@
</script>
#else
#set($class = $obj.xWikiClass)
-#set($sections = ["params", "skin", "presentation", "editing", "advanced", "registration"])
+#set($sections = ["params", "skin", "presentation", "editing", "advanced", "registration", "antispam"])
#set($sectionitemsmap = $xwiki.hashMap)
#set($sectionitemsmap.params = ["multilingual", "language" , "default_language", "authenticate_view", "authenticate_edit", "auth_active_check" ])
#set($sectionitemsmap.skin = ["skin", "stylesheet", "stylesheets", "leftPanels", "rightPanels", "showLeftPanels", "showRightPanels", "pageWidth"])
@@ -36,6 +36,7 @@
#set($sectionitemsmap.editing = ["editor", "editbox_width","editbox_height"])
#set($sectionitemsmap.advanced = ["macros_languages", "macros_velocity","macros_groovy", "macros_mapping", "notification_pages" ])
#set($sectionitemsmap.registration = [ "use_email_verification", "admin_email", "smtp_server", "validation_email_content", "confirmation_email_content" , "invitation_email_content"])
+#set($sectionitemsmap.antispam = [ "registration_anonymous", "registration_registered", "edit_anonymous", "edit_registered", "comment_anonymous", "comment_registered"])
#macro(showsection $section $sectionitemsmap)
<h3>$msg.get($section)</h3>
<br>
@@ -49,6 +50,19 @@
#set($title = $!prop.prettyName)
#end
#end
+<tr>
+ <td>
+ #if($item=="registration_anonymous")
+ <b><i> Registration </i></b>
+ #end
+ #if($item=="edit_anonymous")
+ <br><b><i> Edit </i></b>
+ #end
+ #if($item=="comment_anonymous")
+ <br><b><i> Comment </i></b>
+ #end
+ </td>
+</tr>
<tr><td>$title</td>
<td>
#if($prop)
Modified: xwiki/trunk/src/main/web/templates/preview.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/preview.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/preview.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -15,6 +15,7 @@
<input type="hidden" name="xredirect" value="$!request.getParameter("xredirect")" />
<input type="hidden" name="xnotification" value="$!request.getParameter("xnotification")" />
<input type="hidden" name="language" value="$!request.getParameter("language")" />
+<input type="hidden" name="isResponsePreviewCorrect" value="$isResponseCorrect">
</p>
<div id="xwikiobject">
#template("hiddenobject.vm")
Modified: xwiki/trunk/src/main/web/templates/previewfooter.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/previewfooter.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/previewfooter.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -15,10 +15,11 @@
#end
#if ($sectionNumber != 0)
#set($editparams = "$editparams§ion=$sectionNumber")
+ #set($saveparams = "section=$sectionNumber")
#end
#end
<a href="$doc.getURL($editaction,$editparams)" onclick="document.forms.edit.action=this.href; document.forms.edit.submit(); return false;"> $msg.get("backtoedit")</a>
<span> | </span>
- <a href="$doc.getURL("save",$editparams)" onclick="document.forms.edit.action=this.href; document.forms.edit.submit(); return false;" >$msg.get("save")</a>
+ <a href="$doc.getURL("save",$saveparams)" onclick="document.forms.edit.action=this.href; document.forms.edit.submit(); return false;" >$msg.get("save")</a>
</div>
</div>
\ No newline at end of file
Modified: xwiki/trunk/src/main/web/templates/previewheader.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/previewheader.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/previewheader.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -15,10 +15,11 @@
#end
#if ($sectionNumber != 0)
#set($editparams = "$editparams§ion=$sectionNumber")
+ #set($saveparams = "section=$sectionNumber")
#end
#end
<a href="$doc.getURL($editaction,$editparams)" onclick="document.forms.edit.action=this.href; document.forms.edit.submit(); return false;"> $msg.get("backtoedit")</a>
<span> | </span>
- <a href="$doc.getURL("save",$editparams)" onclick="document.forms.edit.action=this.href; document.forms.edit.submit(); return false;" >$msg.get("save")</a>
+ <a href="$doc.getURL("save",$saveparams)" onclick="document.forms.edit.action=this.href; document.forms.edit.submit(); return false;" >$msg.get("save")</a>
</div>
</div>
\ No newline at end of file
Modified: xwiki/trunk/src/main/web/templates/wysiwyg.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/wysiwyg.vm 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/main/web/templates/wysiwyg.vm 2006-09-11 07:20:11 UTC (rev 1301)
@@ -72,6 +72,10 @@
$msg.get("switchto") <span style="color: blue; cursor:pointer;" onclick="document.forms.edit.action='$doc.getURL("edit","$switchParam")';if (document.forms.edit.onsubmit) document.forms.edit.onsubmit(); document.forms.edit.submit(); return false;"><u>$msg.get("wikieditor")</u></span>
<br />
$xwiki.getTextArea($tdoc.content)
+#if (!$captchaPlugin.equals("noCaptchaPlugin"))
+#set($captchaParams = $captchaPlugin.getCaptchaParams($context.user,"edit"))
+$captchaPlugin.displayCaptcha($captchaParams,"wiki_captcha")
+#end
<br/>
#if ($tdoc.language=="")
$msg.get("parent"): <input type="text" name="parent" value="$!doc.parent" size="40" />
Modified: xwiki/trunk/src/test/cactus/com/xpn/xwiki/test/ServletCaptchaTest.java
===================================================================
--- xwiki/trunk/src/test/cactus/com/xpn/xwiki/test/ServletCaptchaTest.java 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/test/cactus/com/xpn/xwiki/test/ServletCaptchaTest.java 2006-09-11 07:20:11 UTC (rev 1301)
@@ -65,6 +65,32 @@
launchTest();
}
+ // ====================== Test does not show a captcha when preview edit by anonymous ==============================
+ public void beginNotShowCaptchaForAnonymousPreviewEdit(WebRequest webRequest) throws HibernateException, XWikiException {
+ XWikiHibernateStore hibstore = new XWikiHibernateStore(getHibpath());
+ StoreHibernateTest.cleanUp(hibstore, context);
+ clientSetUp(hibstore);
+
+ Utils.setStringValue("XWiki.XWikiPreferences", "edit_anonymous", "Image", context);
+ Utils.setStringValue("XWiki.XWikiPreferences", "edit_registered", "Image", context);
+ Utils.createDoc(xwiki.getStore(), "Main", "WebHome", context);
+ setUrl(webRequest, "preview", "Main", "WebHome", "");
+ }
+
+ public void endNotShowCaptchaForAnonymousPreviewEdit(WebResponse webResponse) throws HibernateException {
+ try {
+ String result = webResponse.getText();
+ assertFalse("Find out captcha image : " + result, result.indexOf("<input type=\"text\" name=\"jcaptcha_response\"") != -1);
+ assertFalse("Find out simple math question : " + result, result.indexOf("Please answer this simple math question") != -1);
+ } finally {
+ clientTearDown();
+ }
+ }
+
+ public void testNotShowCaptchaForAnonymousPreviewEdit() throws Throwable {
+ launchTest();
+ }
+
// ====================== Test show a simple question to confirm for edit by anonymous =============================
public void beginShowCaptchaTextForAnonymousEdit(WebRequest webRequest) throws HibernateException, XWikiException {
XWikiHibernateStore hibstore = new XWikiHibernateStore(getHibpath());
@@ -114,6 +140,41 @@
launchTest();
}
+ // ============ Verify the captcha does not show up for registered users when configured on anonymous ==============
+ public void beginNotShowCaptchaForRegisteredUserEdit(WebRequest webRequest) throws HibernateException, XWikiException, MalformedURLException {
+ XWikiHibernateStore hibstore = new XWikiHibernateStore(getHibpath());
+ StoreHibernateTest.cleanUp(hibstore, context);
+ clientSetUp(hibstore);
+
+ Utils.setStringValue("XWiki.XWikiPreferences", "edit_anonymous", "Emage", context);
+ Utils.createDoc(xwiki.getStore(), "Main", "WebHome1", context);
+ HashMap map = new HashMap();
+ map.put("password", "toto");
+ xwiki.createUser("PhungHaiNam", map, "", "", "view, edit", context);
+ Utils.updateRight(xwiki, context, "Main.WebHome1", "XWiki.PhungHaiNam", "", "edit", true, false);
+
+ MyFormAuthentication auth = new MyFormAuthentication("PhungHaiNam", "toto");
+ auth.setSecurityCheckURL(new URL("http://127.0.0.1:9080/xwiki/testbin/loginsubmit/XWiki/XWikiLogin"));
+ webRequest.setAuthentication(auth);
+ setUrl(webRequest, "edit", "Main", "WebHome1", "");
+ }
+
+ public void endNotShowCaptchaForRegisteredUserEdit(WebResponse webResponse) throws HibernateException {
+ try {
+ assertEquals("Response status should be 200", 200, webResponse.getStatusCode());
+ String result = webResponse.getText();
+ assertTrue("Could not find WebHome1 Content: " + result, result.indexOf("Hello 1")!=-1);
+ assertFalse("Find out captcha image : " + result, result.indexOf("<input type=\"text\" name=\"jcaptcha_response\"") != -1);
+ assertFalse("Find out simple math question : " + result, result.indexOf("Please answer this simple math question") != -1);
+ } finally {
+ clientTearDown();
+ }
+ }
+
+ public void testNotShowCaptchaForRegisteredUserEdit() throws Throwable {
+ launchTest();
+ }
+
// =================== Test for require captcha again when comfirm to edit is not correct ==========================
public void beginCaptchaNotCorrectForAnonymousEdit(WebRequest webRequest) throws HibernateException, XWikiException {
XWikiHibernateStore hibstore = new XWikiHibernateStore(getHibpath());
Modified: xwiki/trunk/src/test/resources/xwiki.hbm.xml
===================================================================
--- xwiki/trunk/src/test/resources/xwiki.hbm.xml 2006-09-08 12:25:46 UTC (rev 1300)
+++ xwiki/trunk/src/test/resources/xwiki.hbm.xml 2006-09-11 07:20:11 UTC (rev 1301)
@@ -699,6 +699,24 @@
<property name="languages" type="string">
<column name="XWP_LANGUAGES" length="255" />
</property>
+ <property name="registration_anonymous" type="string">
+ <column name="XWP_REGISTRATION_ANONYMUOS" length="255" />
+ </property>
+ <property name="registration_registered" type="string">
+ <column name="XWP_REGISTRATION_REGISTERED" length="255" />
+ </property>
+ <property name="edit_anonymous" type="string">
+ <column name="XWP_EDIT_ANONYMUOS" length="255" />
+ </property>
+ <property name="edit_registered" type="string">
+ <column name="XWP_EDIT_REGISTERED" length="255" />
+ </property>
+ <property name="comment_anonymous" type="string">
+ <column name="XWP_COMMENT_ANONYMUOS" length="255" />
+ </property>
+ <property name="comment_registered" type="string">
+ <column name="XWP_COMMENT_REGISTERED" length="255" />
+ </property>
</class>
<!-- XWikiComments custom mapping -->
More information about the Xwiki-notifications
mailing list