Author: tmortagne
Date: 2007-11-02 10:00:49 +0100 (Fri, 02 Nov 2007)
New Revision: 5604
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiGroupServiceImpl.java
Log:
XWIKI-1826: Add filter on template pages for users and groups.
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiGroupServiceImpl.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiGroupServiceImpl.java
2007-11-02 09:00:46 UTC (rev 5603)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiGroupServiceImpl.java
2007-11-02 09:00:49 UTC (rev 5604)
@@ -71,11 +71,21 @@
private static final String CLASS_SUFFIX_XWIKIUSERS = "XWikiUsers";
/**
- * Name of the "XWiki.XWikiGroups" class without the space name.
+ * Name of the "XWiki.XWikiGroups" class.
*/
- private static final String CLASS_XWIKIGROUPS = "XWiki.XWikiGroups";
+ private static final String CLASS_XWIKIGROUPS = "XWiki" +
CLASS_SUFFIX_XWIKIGROUPS;
/**
+ * Name of the "XWiki.XWikiGroupSheet" class sheet.
+ */
+ private static final String CLASSSHEET_XWIKIGROUPS =
"XWiki.XWikiGroupSheet";
+
+ /**
+ * Name of the "XWiki.XWikiUserSheet" class sheet.
+ */
+ private static final String CLASSSHEET_XWIKIUSERS = "XWiki.XWikiUserSheet";
+
+ /**
* Name of the field of class XWiki.XWikiGroups where group's members
names are inserted.
*/
private static final String FIELD_XWIKIGROUPS_MEMBER = "member";
@@ -315,6 +325,9 @@
}
}
+ /**
+ * @deprecated Use [EMAIL PROTECTED] #getAllMembersNamesForGroup(String,
int, int, XWikiContext)}.
+ */
public List listMemberForGroup(String group, XWikiContext context) throws
XWikiException
{
List list = new ArrayList();
@@ -359,6 +372,10 @@
return null;
}
+ /**
+ * @deprecated Use
+ * [EMAIL PROTECTED] #getAllMatchedGroups(Object[][], boolean,
int, int, Object[][], XWikiContext)}.
+ */
public List listAllGroups(XWikiContext context) throws XWikiException
{
if (context.getWiki().getHibernateStore() != null) {
@@ -424,7 +441,7 @@
* Create a "where clause" to use with [EMAIL PROTECTED]
XWikiStoreInterface} searchDocuments and
* searchDocumentsNames methods.
*
- * @param documentClass a filter to search only document containing this
XWiki class.
+ * @param user if true search for users, otherwise search for groups.
* @param matchFields the field to math with values. It is a table of
table with :
* <ul>
* <li>fiedname : the name of the field</li>
@@ -441,14 +458,18 @@
* @param parameterValues the list of values to fill for use with HQL
named request.
* @return the formated HQL named request.
*/
- protected String createWhereClause(String documentClass, Object[][]
matchFields,
- Object[][] order, List parameterValues)
+ protected String createWhereClause(boolean user, Object[][] matchFields,
Object[][] order,
+ List parameterValues)
{
+ String documentClass = user ? CLASS_SUFFIX_XWIKIUSERS :
CLASS_SUFFIX_XWIKIGROUPS;
+ String classsheet = user ? CLASSSHEET_XWIKIUSERS :
CLASSSHEET_XWIKIGROUPS;
+
StringBuffer from = new StringBuffer(", BaseObject as obj");
StringBuffer where =
- new StringBuffer(" where doc.fullName=obj.name and
obj.className='XWiki."
- + documentClass + "'");
+ new StringBuffer(" where doc.fullName=obj.name and doc.fullName<>?
and obj.className=?");
+ parameterValues.add(classsheet);
+ parameterValues.add("XWiki." + documentClass);
Map fieldMap = new HashMap();
int fieldIndex = 0;
@@ -559,11 +580,9 @@
boolean withdetails, int nb, int start, Object[][] order, XWikiContext
context)
throws XWikiException
{
- String documentClass = user ? CLASS_SUFFIX_XWIKIUSERS :
CLASS_SUFFIX_XWIKIGROUPS;
-
if (context.getWiki().getHibernateStore() != null) {
List parameterValues = new ArrayList();
- String where = createWhereClause(documentClass, matchFields,
order, parameterValues);
+ String where = createWhereClause(user, matchFields, order,
parameterValues);
if (withdetails)
return context.getWiki().getStore().searchDocuments(where, nb,
start,
@@ -613,10 +632,8 @@
protected int countAllMatchedUsersOrGroups(boolean user, Object[][]
matchFields,
XWikiContext context) throws XWikiException
{
- String documentClass = user ? CLASS_SUFFIX_XWIKIUSERS :
CLASS_SUFFIX_XWIKIGROUPS;
-
List parameterValues = new ArrayList();
- String where = createWhereClause(documentClass, matchFields, null,
parameterValues);
+ String where = createWhereClause(user, matchFields, null,
parameterValues);
String sql = "select count(distinct doc) from XWikiDocument doc" +
where;
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications