1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.services.security;
18
19 import java.util.Iterator;
20
21 import org.apache.jetspeed.om.security.Group;
22 import org.apache.turbine.services.TurbineServices;
23
24 /***
25 * <p> The <code>GroupManagement</code> interface describes contract between
26 * the portal and security provider required for Jetspeed Group Management.
27 * This interface enables an application to be independent of the underlying
28 * group management technology.
29 *
30 * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
31 * @version $Id: JetspeedGroupManagement.java,v 1.5 2004/02/23 03:58:11 jford Exp $
32 */
33
34 public abstract class JetspeedGroupManagement
35 {
36 public String SERVICE_NAME = "GroupManagement";
37
38
39
40
41
42
43
44 protected static GroupManagement getService()
45 {
46 return (GroupManagement)TurbineServices
47 .getInstance().getService(GroupManagement.SERVICE_NAME);
48 }
49
50 /***
51 * Retrieves all <code>Group</code>s for a given username principal.
52 *
53 * The security service may optionally check the current user context
54 * to determine if the requestor has permission to perform this action.
55 *
56 * @param username a user principal identity to be retrieved.
57 * @return Iterator over all groups associated to the user principal.
58 * @exception GroupException when the security provider has a general failure.
59 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
60 */
61 public static Iterator getGroups(String username)
62 throws JetspeedSecurityException
63 {
64 return getService().getGroups(username);
65 }
66
67 /***
68 * Retrieves all <code>Group</code>s.
69 *
70 * The security service may optionally check the current user context
71 * to determine if the requestor has permission to perform this action.
72 *
73 * @return Iterator over all groups.
74 * @exception GroupException when the security provider has a general failure.
75 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
76 */
77 public static Iterator getGroups()
78 throws JetspeedSecurityException
79 {
80 return getService().getGroups();
81 }
82
83 /***
84 * Adds a <code>Group</code> into permanent storage.
85 *
86 *
87 * @exception GroupException when the security provider has a general failure.
88 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
89 */
90 public static void addGroup(Group group)
91 throws JetspeedSecurityException
92 {
93 getService().addGroup(group);
94 }
95
96 /***
97 * Saves a <code>Group</code> into permanent storage.
98 *
99 *
100 * @exception GroupException when the security provider has a general failure.
101 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
102 */
103 public static void saveGroup(Group group)
104 throws JetspeedSecurityException
105 {
106 getService().saveGroup(group);
107 }
108
109 /***
110 * Removes a <code>Group</code> from the permanent store.
111 *
112 * The security service may optionally check the current user context
113 * to determine if the requestor has permission to perform this action.
114 *
115 * @param groupname the principal identity of the group to be retrieved.
116 * @exception GroupException when the security provider has a general failure.
117 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
118 */
119 public static void removeGroup(String groupname)
120 throws JetspeedSecurityException
121 {
122 getService().removeGroup(groupname);
123 }
124
125 /***
126 * Join a user to a group.
127 *
128 * The security service may optionally check the current user context
129 * to determine if the requestor has permission to perform this action.
130 *
131 * @exception GroupException when the security provider has a general failure retrieving users.
132 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
133 */
134 public static void joinGroup(String username, String groupname)
135 throws JetspeedSecurityException
136 {
137 getService().joinGroup(username,groupname);
138 }
139
140 /***
141 * Join a user to a group - specific role.
142 *
143 * The security service may optionally check the current user context
144 * to determine if the requestor has permission to perform this action.
145 *
146 * @exception GroupException when the security provider has a general failure retrieving groups.
147 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
148 */
149 public static void joinGroup(String username, String groupname, String rolename)
150 throws JetspeedSecurityException
151 {
152 getService().joinGroup(username,groupname, rolename);
153 }
154
155
156 /***
157 * Unjoin a user from a group.
158 *
159 * The security service may optionally check the current user context
160 * to determine if the requestor has permission to perform this action.
161 *
162 * @exception GroupException when the security provider has a general failure retrieving users.
163 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
164 */
165 public static void unjoinGroup(String username, String groupname)
166 throws JetspeedSecurityException
167 {
168 getService().unjoinGroup(username,groupname);
169 }
170
171 /***
172 * Unjoin a user from a group - specific role.
173 *
174 * The security service may optionally check the current user context
175 * to determine if the requestor has permission to perform this action.
176 *
177 * @exception GroupException when the security provider has a general failure retrieving users.
178 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
179 */
180 public static void unjoinGroup(String username, String groupname, String rolename)
181 throws JetspeedSecurityException
182 {
183 getService().unjoinGroup(username,groupname,rolename);
184 }
185
186
187 /***
188 * Checks for the relationship of user has a group. Returns true when the user has the given group.
189 *
190 * The security service may optionally check the current user context
191 * to determine if the requestor has permission to perform this action.
192 *
193 * @exception GroupException when the security provider has a general failure retrieving users.
194 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
195 */
196 public static boolean inGroup(String username, String groupname)
197 throws JetspeedSecurityException
198 {
199 return getService().inGroup(username,groupname);
200 }
201
202 /***
203 * Retrieves a single <code>Group</code> for a given groupname principal.
204 *
205 * The security service may optionally check the current user context
206 * to determine if the requestor has permission to perform this action.
207 *
208 * @param groupname a group principal identity to be retrieved.
209 * @return Group the group record retrieved.
210 * @exception GroupException when the security provider has a general failure.
211 * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
212 */
213 public static Group getGroup(String groupname)
214 throws JetspeedSecurityException
215 {
216 return getService().getGroup(groupname);
217 }
218 }
219
220
221
222
223
224
225
226
227
228
229