KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > turbine > services > security > torque > TorqueGroup


1 package org.apache.turbine.services.security.torque;
2
3 /*
4  * Copyright 2001-2004 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License")
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18
19 import java.util.Iterator JavaDoc;
20
21 import org.apache.torque.om.Persistent;
22
23 import org.apache.turbine.om.security.Group;
24 import org.apache.turbine.om.security.Role;
25 import org.apache.turbine.om.security.User;
26 import org.apache.turbine.services.security.TurbineSecurity;
27 import org.apache.turbine.util.security.RoleSet;
28 import org.apache.turbine.util.security.TurbineSecurityException;
29
30 /**
31  * This class represents a Group of Users in the system that are associated
32  * with specific entity or resource. The users belonging to the Group may
33  * have various Roles. The Permissions to perform actions upon the resource
34  * depend on the Roles in the Group that they are assigned. It is separated
35  * from the actual Torque peer object to be able to replace the Peer with an
36  * user supplied Peer (and Object)
37  *
38  * <a name="global">
39  * <p> Certain Roles that the Users may have in the system are not related
40  * to any specific resource nor entity.
41  * They are assigned within a special group named 'global' that can be
42  * referenced in the code as {@link #GLOBAL_GROUP_NAME}.
43  * <br>
44  *
45  * @author <a HREF="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a>
46  * @author <a HREF="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
47  * @author <a HREF="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
48  * @version $Id: TorqueGroup.java,v 1.4.2.2 2004/05/20 03:06:50 seade Exp $
49  */

50
51 public class TorqueGroup
52     extends TorqueObject
53     implements Group,
54                Comparable JavaDoc,
55                Persistent
56 {
57     /**
58      * Constructs a new Group.
59      */

60     public TorqueGroup()
61     {
62         super();
63     }
64
65     /**
66      * Constructs a new Group with the specified name.
67      *
68      * @param name The name of the new object.
69      */

70
71     public TorqueGroup(String JavaDoc name)
72     {
73         super(name);
74     }
75
76     /**
77      * The package private Constructor is used when the GroupPeerManager
78      * has retrieved a list of Database Objects from the peer and
79      * must 'wrap' them into TorqueGroup Objects.
80      * You should not use it directly!
81      *
82      * @param obj An Object from the peer
83      */

84     public TorqueGroup(Persistent obj)
85     {
86         super(obj);
87     }
88
89     /**
90      * Returns the underlying Object for the Peer
91      *
92      * Used in the GroupPeerManager when building a new Criteria.
93      *
94      * @return The underlying persistent object
95      *
96      */

97
98     public Persistent getPersistentObj()
99     {
100         if (obj == null)
101         {
102             obj = GroupPeerManager.newPersistentInstance();
103         }
104         return obj;
105     }
106
107     /**
108      * Returns the name of this object.
109      *
110      * @return The name of the object.
111      */

112     public String JavaDoc getName()
113     {
114         return GroupPeerManager.getGroupName(getPersistentObj());
115     }
116
117     /**
118      * Sets the name of this object.
119      *
120      * @param name The name of the object.
121      */

122     public void setName(String JavaDoc name)
123     {
124         GroupPeerManager.setGroupName(getPersistentObj(), name);
125     }
126
127     /**
128      * Gets the Id of this object
129      *
130      * @return The Id of the object
131      */

132     public int getId()
133     {
134         return GroupPeerManager.getIdAsObj(getPersistentObj()).intValue();
135     }
136
137     /**
138      * Gets the Id of this object
139      *
140      * @return The Id of the object
141      */

142     public Integer JavaDoc getIdAsObj()
143     {
144         return GroupPeerManager.getIdAsObj(getPersistentObj());
145     }
146
147     /**
148      * Sets the Id of this object
149      *
150      * @param id The new Id
151      */

152     public void setId(int id)
153     {
154         GroupPeerManager.setId(getPersistentObj(), id);
155     }
156
157     /**
158      * Provides a reference to the Group object that represents the
159      * <a HREF="#global">global group</a>.
160      *
161      * @return a Group object that represents the global group.
162      * @deprecated Please use the method in TurbineSecurity now.
163      */

164     public static Group getGlobalGroup()
165     {
166         return TurbineSecurity.getGlobalGroup();
167     }
168
169     /**
170      * Creates a new Group in the system.
171      *
172      * @param name The name of the new Group.
173      * @return An object representing the new Group.
174      * @throws TurbineSecurityException if the Group could not be created.
175      * @deprecated Please use the createGroup method in TurbineSecurity now.
176      */

177     public static Group create(String JavaDoc name)
178         throws TurbineSecurityException
179     {
180         return TurbineSecurity.createGroup(name);
181     }
182
183     // These following methods are wrappers around TurbineSecurity
184

185     /**
186      * Makes changes made to the Group attributes permanent.
187      *
188      * @throws TurbineSecurityException if there is a problem while
189      * saving data.
190      */

191     public void save()
192         throws TurbineSecurityException
193     {
194         TurbineSecurity.saveGroup(this);
195     }
196
197     /**
198      * Removes a group from the system.
199      *
200      * @throws TurbineSecurityException if the Group could not be removed.
201      */

202     public void remove()
203         throws TurbineSecurityException
204     {
205         TurbineSecurity.removeGroup(this);
206     }
207
208     /**
209      * Renames the role.
210      *
211      * @param name The new Group name.
212      * @throws TurbineSecurityException if the Group could not be renamed.
213      */

214     public void rename(String JavaDoc name)
215         throws TurbineSecurityException
216     {
217         TurbineSecurity.renameGroup(this, name);
218     }
219
220     /**
221      * Grants a Role in this Group to an User.
222      *
223      * @param user An User.
224      * @param role A Role.
225      * @throws TurbineSecurityException if there is a problem while assigning
226      * the Role.
227      */

228     public void grant(User user, Role role)
229         throws TurbineSecurityException
230     {
231         TurbineSecurity.grant(user, this, role);
232     }
233
234     /**
235      * Grants Roles in this Group to an User.
236      *
237      * @param user An User.
238      * @param roleSet A RoleSet.
239      * @throws TurbineSecurityException if there is a problem while assigning
240      * the Roles.
241      */

242     public void grant(User user, RoleSet roleSet)
243         throws TurbineSecurityException
244     {
245         Iterator JavaDoc roles = roleSet.iterator();
246         while (roles.hasNext())
247         {
248             TurbineSecurity.grant(user, this, (Role) roles.next());
249         }
250     }
251
252     /**
253      * Revokes a Role in this Group from an User.
254      *
255      * @param user An User.
256      * @param role A Role.
257      * @throws TurbineSecurityException if there is a problem while unassigning
258      * the Role.
259      */

260     public void revoke(User user, Role role)
261         throws TurbineSecurityException
262     {
263         TurbineSecurity.revoke(user, this, role);
264     }
265
266     /**
267      * Revokes Roles in this group from an User.
268      *
269      * @param user An User.
270      * @param roleSet a RoleSet.
271      * @throws TurbineSecurityException if there is a problem while unassigning
272      * the Roles.
273      */

274     public void revoke(User user, RoleSet roleSet)
275         throws TurbineSecurityException
276     {
277         Iterator JavaDoc roles = roleSet.iterator();
278         while (roles.hasNext())
279         {
280             TurbineSecurity.revoke(user, this, (Role) roles.next());
281         }
282     }
283
284 }
285
286
Popular Tags