1 package org.apache.turbine.om.security;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.io.Serializable;
23
24 import org.apache.turbine.util.security.RoleSet;
25 import org.apache.turbine.util.security.TurbineSecurityException;
26
27 /**
28 * This class represents a Group of Users in the system that are associated
29 * with specific entity or resource. The users belonging to the Group may have
30 * various Roles. The Permissions to perform actions upon the resource depend
31 * on the Roles in the Group that they are assigned.
32 *
33 * @author <a href="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a>
34 * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
35 * @version $Id: Group.java 957284 2010-06-23 17:53:31Z tv $
36 */
37 public interface Group extends SecurityEntity, Serializable
38 {
39 /**
40 * The name of the <a href="#global">global group</a>
41 */
42 String GLOBAL_GROUP_NAME = "global";
43
44 /**
45 * Makes changes made to the Group attributes permanent.
46 *
47 * @throws TurbineSecurityException if there is a problem while
48 * saving data.
49 */
50 void save()
51 throws TurbineSecurityException;
52
53 /**
54 * Removes a group from the system.
55 *
56 * @throws TurbineSecurityException if the Group could not be removed.
57 */
58 void remove()
59 throws TurbineSecurityException;
60
61 /**
62 * Renames the role.
63 *
64 * @param name The new Group name.
65 * @throws TurbineSecurityException if the Group could not be renamed.
66 */
67 void rename(String name)
68 throws TurbineSecurityException;
69
70 /**
71 * Grants a Role in this Group to an User.
72 *
73 * @param user An User.
74 * @param role A Role.
75 * @throws TurbineSecurityException if there is a problem while assigning
76 * the Role.
77 */
78 void grant(User user, Role role)
79 throws TurbineSecurityException;
80
81 /**
82 * Grants Roles in this Group to an User.
83 *
84 * @param user An User.
85 * @param roleSet A RoleSet.
86 * @throws TurbineSecurityException if there is a problem while assigning
87 * the Roles.
88 */
89 void grant(User user, RoleSet roleSet)
90 throws TurbineSecurityException;
91
92 /**
93 * Revokes a Role in this Group from an User.
94 *
95 * @param user An User.
96 * @param role A Role.
97 * @throws TurbineSecurityException if there is a problem while unassigning
98 * the Role.
99 */
100 void revoke(User user, Role role)
101 throws TurbineSecurityException;
102
103 /**
104 * Revokes Roles in this group from an User.
105 *
106 * @param user An User.
107 * @param roleSet a RoleSet.
108 * @throws TurbineSecurityException if there is a problem while unassigning
109 * the Roles.
110 */
111 void revoke(User user, RoleSet roleSet)
112 throws TurbineSecurityException;
113
114 }