1 package org.apache.turbine.om.security; 2 3 4 /* 5 * Licensed to the Apache Software Foundation (ASF) under one 6 * or more contributor license agreements. See the NOTICE file 7 * distributed with this work for additional information 8 * regarding copyright ownership. The ASF licenses this file 9 * to you under the Apache License, Version 2.0 (the 10 * "License"); you may not use this file except in compliance 11 * with the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, 16 * software distributed under the License is distributed on an 17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 * KIND, either express or implied. See the License for the 19 * specific language governing permissions and limitations 20 * under the License. 21 */ 22 23 24 import java.sql.Connection; 25 import java.util.Iterator; 26 27 import org.apache.turbine.services.security.TurbineSecurity; 28 import org.apache.turbine.util.security.RoleSet; 29 import org.apache.turbine.util.security.TurbineSecurityException; 30 31 /** 32 * This class represents a Group of Users in the system that are associated 33 * with specific entity or resource. The users belonging to the Group may have 34 * various Roles. The Permissions to perform actions upon the resource depend 35 * on the Roles in the Group that they are assigned. 36 * 37 * <a name="global"> 38 * <p> Certain Roles that the Users may have in the system may are not related 39 * to any specific resource nor entity. 40 * They are assigned within a special group named 'global' that can be 41 * referenced in the code as {@link #GLOBAL_GROUP_NAME}. 42 * <br> 43 * 44 * @author <a href="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a> 45 * @version $Id: TurbineGroup.java 1078552 2011-03-06 19:58:46Z tv $ 46 */ 47 public class TurbineGroup extends SecurityObject<Group> implements Group 48 { 49 /** Serial version */ 50 private static final long serialVersionUID = -6034684697021752649L; 51 52 /** 53 * Constructs a new Group. 54 */ 55 public TurbineGroup() 56 { 57 super(); 58 } 59 60 /** 61 * Constructs a new Group with the specified name. 62 * 63 * @param name The name of the new object. 64 */ 65 public TurbineGroup(String name) 66 { 67 super(name); 68 } 69 70 // These following methods are wrappers around TurbineSecurity 71 72 /** 73 * Makes changes made to the Group attributes permanent. 74 * 75 * @throws TurbineSecurityException if there is a problem while saving data. 76 */ 77 public void save() throws TurbineSecurityException 78 { 79 TurbineSecurity.saveGroup(this); 80 } 81 82 /** 83 * not implemented 84 * 85 * @param conn 86 * @throws Exception 87 */ 88 public void save(Connection conn) throws Exception 89 { 90 throw new Exception("not implemented"); 91 } 92 93 /** 94 * not implemented 95 * 96 * @param dbname 97 * @throws Exception 98 */ 99 public void save(String dbname) throws Exception 100 { 101 throw new Exception("not implemented"); 102 } 103 104 /** 105 * Removes a group from the system. 106 * 107 * @throws TurbineSecurityException if the Group could not be removed. 108 */ 109 public void remove() throws TurbineSecurityException 110 { 111 TurbineSecurity.removeGroup(this); 112 } 113 114 /** 115 * Renames the role. 116 * 117 * @param name The new Group name. 118 * @throws TurbineSecurityException if the Group could not be renamed. 119 */ 120 public void rename(String name) throws TurbineSecurityException 121 { 122 TurbineSecurity.renameGroup(this, name); 123 } 124 125 /** 126 * Grants a Role in this Group to an User. 127 * 128 * @param user An User. 129 * @param role A Role. 130 * @throws TurbineSecurityException if there is a problem while assigning 131 * the Role. 132 */ 133 public void grant(User user, Role role) throws TurbineSecurityException 134 { 135 TurbineSecurity.grant(user, this, role); 136 } 137 138 /** 139 * Grants Roles in this Group to an User. 140 * 141 * @param user An User. 142 * @param roleSet A RoleSet. 143 * @throws TurbineSecurityException if there is a problem while assigning 144 * the Roles. 145 */ 146 public void grant(User user, RoleSet roleSet) 147 throws TurbineSecurityException 148 { 149 for (Iterator roles = roleSet.iterator(); roles.hasNext();) 150 { 151 TurbineSecurity.grant(user, this, (Role) roles.next()); 152 } 153 } 154 155 /** 156 * Revokes a Role in this Group from an User. 157 * 158 * @param user An User. 159 * @param role A Role. 160 * @throws TurbineSecurityException if there is a problem while unassigning 161 * the Role. 162 */ 163 public void revoke(User user, Role role) throws TurbineSecurityException 164 { 165 TurbineSecurity.revoke(user, this, role); 166 } 167 168 /** 169 * Revokes Roles in this group from an User. 170 * 171 * @param user An User. 172 * @param roleSet a RoleSet. 173 * @throws TurbineSecurityException if there is a problem while unassigning 174 * the Roles. 175 */ 176 public void revoke(User user, RoleSet roleSet) 177 throws TurbineSecurityException 178 { 179 for (Iterator roles = roleSet.iterator(); roles.hasNext();) 180 { 181 TurbineSecurity.revoke(user, this, (Role) roles.next()); 182 } 183 } 184 }