Yes, Hibernate disallows the update keyword in a search, it would be a pretty
big security hole if I
could just use a searchDocuments command to update the admin group to add
myself.
The way to do this is either get the document, make the change and then save
the document, or if you
need to do a lot of documents really fast then you can get updates if you have
programming right.
Caleb
On 11/05/2010 12:20 PM, tapaya wrote:
>
> I can't use 'update' in HQL expressions in Velocity scripts. Stack trace:
>
>
> org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate
> Velocity Macro for content [{{html wiki="true"}}
>
>
>
>
>
>
> {{/html}}
> #if($request.searchDocumentsQuery)
>
> == Ergebnis ==
>
> #if(!$request.privapi||$request.privapi==''||$request.privapi=='false')
> ## Simple API
>
> #set($results=$xwiki.searchDocuments($request.searchDocumentsQuery.trim()))
> #else
> ## Privileged API, cp.
> http://platform.xwiki.org/xwiki/bin/view/DevGuide/velocityHqlExamples
> #set($results=$xwiki.search($request.searchDocumentsQuery.trim()))
> ##
> #set($results=$xwiki.queryManager.xwql($request.searchDocumentsQuery.trim()).execute())
> #end
> #foreach($result in $results)
> * $result
> #end
> #end]
> at
> org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:125)
> at
> org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:44)
> at
> org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:299)
> at
> org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:191)
> at
> org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
> at
> org.xwiki.rendering.internal.transformation.MacroTransformation.transformOnce(MacroTransformation.java:184)
> at
> org.xwiki.rendering.internal.transformation.MacroTransformation.transform(MacroTransformation.java:129)
> at
> org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:85)
> at
> com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:7401)
> at
> com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:7351)
> at
> com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:829)
> at
> com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:780)
> at
> com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:872)
> at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:527)
> at sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:493)
> at
> org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
> at
> org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
> at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> at
> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
> at
> com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
> at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1855)
> at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1793)
> at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:896)
> at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:332)
> at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> at
> org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:212)
> at
> org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:247)
> at
> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
> at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> at
> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
> at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> at
> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
> at
> com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
> at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1903)
> at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1825)
> at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:155)
> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:225)
> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116)
> at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
> at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
> at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
> at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:129)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:152)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:326)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate
> content with id [xwiki:Sandbox.tst-2010-11-05-001]
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:205)
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
> at
> org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:118)
> ... 93 more
> Caused by: org.apache.velocity.exception.MethodInvocationException:
> Invocation of method 'search' in class com.xpn.xwiki.api.XWiki threw
> exception com.xpn.xwiki.XWikiException: Error number 3223 in 3: Exception
> while searching documents with sql update XWikiDocument doc set
> doc.title='asdf poiu quer' where doc.fullName='tst-2010-11-03-lIqw'
> Wrapped Exception: Not supported for DML operations [update
> com.xpn.xwiki.doc.XWikiDocument doc set doc.title='asdf poiu quer' where
> doc.fullName='tst-2010-11-03-lIqw'] at xwiki:Sandbox.tst-2010-11-05-001[line
> 30, column 22]
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337)
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:284)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:493)
> at
> org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
> at
> org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
> at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> at
> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
> at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> at
> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> at
> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
> ... 95 more
> Caused by: com.xpn.xwiki.XWikiException: Error number 3223 in 3: Exception
> while searching documents with sql update XWikiDocument doc set
> doc.title='asdf poiu quer' where doc.fullName='tst-2010-11-03-lIqw'
> Wrapped Exception: Not supported for DML operations [update
> com.xpn.xwiki.doc.XWikiDocument doc set doc.title='asdf poiu quer' where
> doc.fullName='tst-2010-11-03-lIqw']
> at
> com.xpn.xwiki.store.XWikiHibernateStore.search(XWikiHibernateStore.java:2398)
> at
> com.xpn.xwiki.store.XWikiHibernateStore.search(XWikiHibernateStore.java:2327)
> at
> com.xpn.xwiki.store.XWikiHibernateStore.search(XWikiHibernateStore.java:2315)
> at com.xpn.xwiki.store.XWikiCacheStore.search(XWikiCacheStore.java:660)
> at com.xpn.xwiki.XWiki.search(XWiki.java:1728)
> at com.xpn.xwiki.api.XWiki.search(XWiki.java:512)
> at sun.reflect.GeneratedMethodAccessor458.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
> ... 106 more
>
>
> My script is basically:
>
>
> {{velocity filter="indent"}}
> #set($searchDocumentsQuery="update XWikiDocument doc set doc.title='asdf
> poiu quer' where doc.fullName='tst-2010-11-03-lIqw'")
> #set($results=$xwiki.search($searchDocumentsQuery))
> {{/velocity}}
>
>
> Am I missing something?
>
> (XWiki 2.2 and 2.4.)
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users