r938 - xwiki/trunk/src/main/java/com/xpn/xwiki/api

Ludovic Dubost ludovic at users.forge.objectweb.org
Sat Feb 25 11:57:42 CET 2006


Author: ludovic
Date: 2006-02-25 11:57:42 +0100 (Sat, 25 Feb 2006)
New Revision: 938

Modified:
   xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java
Log:
Added security calls and wrapping to some search functions

Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java	2006-02-25 10:56:56 UTC (rev 937)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java	2006-02-25 10:57:42 UTC (rev 938)
@@ -214,11 +214,17 @@
     }
 
     public List search(String wheresql) throws XWikiException {
-        return xwiki.search(wheresql, context);
+        if (checkProgrammingRights())
+         return xwiki.search(wheresql, context);
+        else
+         return null;
     }
 
     public List search(String wheresql, int nb, int start) throws XWikiException {
-        return xwiki.search(wheresql, nb, start, context);
+        if (checkProgrammingRights())
+         return xwiki.search(wheresql, nb, start, context);
+        else
+         return null;
     }
 
     public List searchDocuments(String wheresql) throws XWikiException {
@@ -230,17 +236,35 @@
     }
 
     public List searchDocuments(String wheresql, int nb, int start, String selectColumns) throws XWikiException {
+        if (checkProgrammingRights())
          return xwiki.getStore().searchDocumentsNames(wheresql, nb, start, selectColumns, context);
-     }
+        else
+         return null;
+    }
 
     public List searchDocuments(String wheresql, boolean distinctbylanguage) throws XWikiException {
-        return xwiki.getStore().searchDocuments(wheresql, context);
+        return wrapDocs(xwiki.getStore().searchDocuments(wheresql, context));
     }
 
     public List searchDocuments(String wheresql, boolean distinctbylanguage, int nb, int start) throws XWikiException {
-        return xwiki.getStore().searchDocuments(wheresql, nb, start, context);
+        return wrapDocs(xwiki.getStore().searchDocuments(wheresql, nb, start, context));
     }
 
+    private List wrapDocs(List docs)
+    {
+        List result = new ArrayList();
+        if (docs != null)
+        {
+            for (Iterator iter = result.iterator(); iter.hasNext();)
+            {
+                XWikiDocument doc = (XWikiDocument) iter.next();
+                Document wrappedDoc = new Document(doc, context);
+                result.add(wrappedDoc);
+            }
+        }
+        return result;
+    }
+
     public String parseContent(String content) {
         return xwiki.parseContent(content, context);
     }





More information about the Xwiki-notifications mailing list