1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package com.xpn.xwiki.user.api

File XWikiGroupService.java

 

Code metrics

0
0
0
1
260
40
0
-
-
0
-

Classes

Class Line # Actions
XWikiGroupService 36 0 - 0 0
-1.0 -
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package com.xpn.xwiki.user.api;
21   
22    import java.util.Collection;
23    import java.util.List;
24   
25    import org.xwiki.model.reference.DocumentReference;
26   
27    import com.xpn.xwiki.XWiki;
28    import com.xpn.xwiki.XWikiContext;
29    import com.xpn.xwiki.XWikiException;
30   
31    /**
32    * Interface giving access to users and groups management.
33    *
34    * @version $Id: 296aa38f4cf7791504bf20b8d53170e50b9430e3 $
35    */
 
36    public interface XWikiGroupService
37    {
38    void init(XWiki xwiki, XWikiContext context) throws XWikiException;
39   
40    void initCache(XWikiContext context) throws XWikiException;
41   
42    void initCache(int iCapacity, XWikiContext context) throws XWikiException;
43   
44    void flushCache();
45   
46    /**
47    * @deprecated Use {@link #getAllGroupsNamesForMember(String, int, int, XWikiContext)}.
48    */
49    @Deprecated
50    Collection<String> listGroupsForUser(String username, XWikiContext context) throws XWikiException;
51   
52    /**
53    * @deprecated should never be used ! There is a listener taking care of that automatically.
54    */
55    @Deprecated
56    void addUserToGroup(String user, String database, String group, XWikiContext context) throws XWikiException;
57   
58    /**
59    * Remove user or group name from all groups.
60    *
61    * @param userOrGroupWiki the name of the wiki of the member.
62    * @param userOrGroupSpace the name of the space of the member.
63    * @param userOrGroupName the name of the member.
64    * @param context the XWiki context.
65    * @throws XWikiException error when browsing groups.
66    * @since 1.1.2
67    * @since 1.2M2
68    */
69    void removeUserOrGroupFromAllGroups(String userOrGroupWiki, String userOrGroupSpace, String userOrGroupName,
70    XWikiContext context) throws XWikiException;
71   
72    /**
73    * @deprecated Use {@link #getAllMembersNamesForGroup(String, int, int, XWikiContext)}.
74    */
75    @Deprecated
76    List<String> listMemberForGroup(String s, XWikiContext context) throws XWikiException;
77   
78    /**
79    * @deprecated Use {@link #getAllMatchedGroups(Object[][], boolean, int, int, Object[][], XWikiContext)}.
80    */
81    @Deprecated
82    List<String> listAllGroups(XWikiContext context) throws XWikiException;
83   
84    /**
85    * Search for all users with provided constraints and in a provided order.
86    *
87    * @param matchFields the field to math with values. It is a table of table with :
88    * <ul>
89    * <li>fiedname : the name of the field</li>
90    * <li>fieldtype : for example StringProperty. If null the field is considered as document field</li>
91    * <li>pattern matching : based on HQL "like" command</li>
92    * </ul>
93    * @param withdetails indicate if a {@link List} containing {@link String} names is returned or {@link List}
94    * containing {@link com.xpn.xwiki.doc.XWikiDocument}.
95    * @param nb the maximum number of results to return. Infinite if 0.
96    * @param start the index of the first found user to return.
97    * @param order the fields to order from. It is a table of table with :
98    * <ul>
99    * <li>fieldname : the name of the field</li>
100    * <li>fieldtype : for example StringProperty. If null the field is considered as document field</li>
101    * <li>asc : a Boolean, if true the order is ascendent</li>
102    * </ul>
103    * @param context the {@link XWikiContext}.
104    * @return the list of users.
105    * @throws XWikiException error when getting users.
106    * @since 1.1.2
107    * @since 1.2M2
108    */
109    List<?> getAllMatchedUsers(Object[][] matchFields, boolean withdetails, int nb, int start, Object[][] order,
110    XWikiContext context) throws XWikiException;
111   
112    /**
113    * Search for all groups with provided constraints and in a provided order.
114    *
115    * @param matchFields the field to math with values. It is a table of table with :
116    * <ul>
117    * <li>fiedname : the name of the field</li>
118    * <li>fieldtype : for example StringProperty. If null the field is considered as document field</li>
119    * <li>pattern matching : based on HQL "like" command</li>
120    * </ul>
121    * .
122    * @param withdetails indicate if a {@link List} containing {@link String} names is returned or {@link List}
123    * containing {@link com.xpn.xwiki.doc.XWikiDocument}.
124    * @param nb the maximum number of result to return. Infinite if 0.
125    * @param start the index of the first found group to return.
126    * @param order the field to order from. It is a table of table with :
127    * <ul>
128    * <li>fieldname : the name of the field</li>
129    * <li>fieldtype : for example StringProperty. If null the field is considered as document field</li>
130    * <li>asc : a Boolean, if true the order is ascendent</li>
131    * </ul>
132    * @param context the {@link XWikiContext}.
133    * @return the list of groups.
134    * @throws XWikiException error when getting groups.
135    * @since 1.1.2
136    * @since 1.2M2
137    */
138    List<?> getAllMatchedGroups(Object[][] matchFields, boolean withdetails, int nb, int start, Object[][] order,
139    XWikiContext context) throws XWikiException;
140   
141    /**
142    * Return number of users with provided constraints.
143    *
144    * @param matchFields the field to math with values. It is a table of table with :
145    * <ul>
146    * <li>fiedname : the name of the field</li>
147    * <li>fieldtype : for example StringProperty. If null the field is considered as document field</li>
148    * <li>pattern matching : based on HQL "like" command</li>
149    * </ul>
150    * .
151    * @param context the {@link XWikiContext}.
152    * @return the of found users.
153    * @throws XWikiException error when getting number of users.
154    * @since 1.1.2
155    * @since 1.2M2
156    */
157    int countAllMatchedUsers(Object[][] matchFields, XWikiContext context) throws XWikiException;
158   
159    /**
160    * Return number of groups with provided constraints.
161    *
162    * @param matchFields the field to math with values. It is a table of table with :
163    * <ul>
164    * <li>fiedname : the name of the field</li>
165    * <li>fieldtype : for example StringProperty. If null the field is considered as document field</li>
166    * <li>pattern matching : based on HQL "like" command</li>
167    * </ul>
168    * .
169    * @param context the {@link XWikiContext}.
170    * @return the of found groups.
171    * @throws XWikiException error when getting number of groups.
172    * @since 1.1.2
173    * @since 1.2M2
174    */
175    int countAllMatchedGroups(Object[][] matchFields, XWikiContext context) throws XWikiException;
176   
177    /**
178    * Get all groups containing provided member in the provided member wiki.
179    *
180    * @param member the name of the member (user or group).
181    * @param nb the maximum number of result to return.
182    * @param start the index of the first found member to return.
183    * @param context the XWiki context.
184    * @return the {@link Collection} of {@link String} containing group name.
185    * @throws XWikiException error when browsing groups.
186    * @since 1.1.2
187    * @since 1.2M2
188    */
189    Collection<String> getAllGroupsNamesForMember(String member, int nb, int start, XWikiContext context)
190    throws XWikiException;
191   
192    /**
193    * Get all groups containing provided member in the current wiki.
194    *
195    * @param memberReference the member. Can be either user or group.
196    * @param limit the maximum number of result to return.
197    * @param offset the index of the first found member to return.
198    * @param context the XWiki context.
199    * @return the {@link Collection} of {@link DocumentReference} containing representing groups.
200    * @throws XWikiException error when browsing groups.
201    * @since 2.4M2
202    */
203    Collection<DocumentReference> getAllGroupsReferencesForMember(DocumentReference memberReference, int limit,
204    int offset, XWikiContext context) throws XWikiException;
205   
206    /**
207    * Get all members provided group contains.
208    *
209    * @param group the name of the group.
210    * @param nb the maximum number of result to return.
211    * @param start the index of the first found user to return.
212    * @param context the XWiki context.
213    * @return the {@link Collection} of {@link String} containing member name.
214    * @throws XWikiException error when browsing groups.
215    * @since 1.1.2
216    * @since 1.2M2
217    */
218    Collection<String> getAllMembersNamesForGroup(String group, int nb, int start, XWikiContext context)
219    throws XWikiException;
220   
221    /**
222    * Get members of provided group.
223    *
224    * @param group the group.
225    * @param matchField a string to search in result to filter.
226    * @param nb the maximum number of result to return.
227    * @param start the index of the first found user to return.
228    * @param orderAsc if true, the result is ordered ascendent, if false it descendant. If null no order is applied.
229    * @param context the XWiki context.
230    * @return the {@link Collection} of {@link String} containing member name.
231    * @throws XWikiException error when browsing groups.
232    * @since 1.6M1
233    */
234    Collection<String> getAllMatchedMembersNamesForGroup(String group, String matchField, int nb, int start,
235    Boolean orderAsc, XWikiContext context) throws XWikiException;
236   
237    /**
238    * Return the number of groups containing provided member.
239    *
240    * @param member the name of the member (user or group).
241    * @param context the XWiki context.
242    * @return the number of groups.
243    * @throws XWikiException error when getting number of users.
244    * @since 1.1.2
245    * @since 1.2M2
246    */
247    int countAllGroupsNamesForMember(String member, XWikiContext context) throws XWikiException;
248   
249    /**
250    * Return the number of members provided group contains.
251    *
252    * @param group the name of the group.
253    * @param context the XWiki context.
254    * @return the number of members.
255    * @throws XWikiException error when getting number of groups.
256    * @since 1.1.2
257    * @since 1.2M2
258    */
259    int countAllMembersNamesForGroup(String group, XWikiContext context) throws XWikiException;
260    }