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.PermissionSet; 29 import org.apache.turbine.util.security.TurbineSecurityException; 30 31 /** 32 * This class represents a role played by the User associated with the 33 * current Session. 34 * 35 * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a> 36 * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a> 37 * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a> 38 * @version $Id: TurbineRole.java 1078552 2011-03-06 19:58:46Z tv $ 39 */ 40 public class TurbineRole extends SecurityObject<Role> implements Role 41 { 42 /** Serial version */ 43 private static final long serialVersionUID = -1354408789347969126L; 44 45 /** 46 * Constructs a new Role 47 */ 48 public TurbineRole() 49 { 50 super(); 51 } 52 53 /** 54 * Constructs a new Role with the sepcified name. 55 * 56 * @param name The name of the new object. 57 */ 58 public TurbineRole(String name) 59 { 60 super(name); 61 } 62 63 /** The permissions for this role. */ 64 private PermissionSet permissionSet = null; 65 66 /** 67 * Returns the set of Permissions associated with this Role. 68 * 69 * @return A PermissionSet. 70 * @exception Exception a generic exception. 71 */ 72 public PermissionSet getPermissions() 73 throws Exception 74 { 75 return permissionSet; 76 } 77 78 /** 79 * Sets the Permissions associated with this Role. 80 * 81 * @param permissionSet A PermissionSet. 82 */ 83 public void setPermissions(PermissionSet permissionSet) 84 { 85 this.permissionSet = permissionSet; 86 } 87 88 // These following methods are wrappers around TurbineSecurity 89 90 /** 91 * Creates a new Role in the system. 92 * 93 * @param name The name of the new Role. 94 * @return An object representing the new Role. 95 * @throws TurbineSecurityException if the Role could not be created. 96 */ 97 public Role create(String name) 98 throws TurbineSecurityException 99 { 100 //Role role = new Role(name); 101 Role role = new TurbineRole(name); 102 TurbineSecurity.addRole(role); 103 return role; 104 } 105 106 /** 107 * Makes changes made to the Role attributes permanent. 108 * 109 * @throws TurbineSecurityException if there is a problem while 110 * saving data. 111 */ 112 public void save() 113 throws TurbineSecurityException 114 { 115 TurbineSecurity.saveRole(this); 116 } 117 118 /** 119 * not implemented 120 * 121 * @param conn 122 * @throws Exception 123 */ 124 public void save(Connection conn) throws Exception 125 { 126 throw new Exception("not implemented"); 127 } 128 129 /** 130 * not implemented 131 * 132 * @param dbname 133 * @throws Exception 134 */ 135 public void save(String dbname) throws Exception 136 { 137 throw new Exception("not implemented"); 138 } 139 140 /** 141 * Removes a role from the system. 142 * 143 * @throws TurbineSecurityException if the Role could not be removed. 144 */ 145 public void remove() 146 throws TurbineSecurityException 147 { 148 TurbineSecurity.removeRole(this); 149 } 150 151 /** 152 * Renames the role. 153 * 154 * @param name The new Role name. 155 * @throws TurbineSecurityException if the Role could not be renamed. 156 */ 157 public void rename(String name) 158 throws TurbineSecurityException 159 { 160 TurbineSecurity.renameRole(this, name); 161 } 162 163 /** 164 * Grants a Permission to this Role. 165 * 166 * @param permission A Permission. 167 * @throws TurbineSecurityException if there is a problem while assigning 168 * the Permission. 169 */ 170 public void grant(Permission permission) 171 throws TurbineSecurityException 172 { 173 TurbineSecurity.grant(this, permission); 174 } 175 176 /** 177 * Grants Permissions from a PermissionSet to this Role. 178 * 179 * @param permissionSet A PermissionSet. 180 * @throws TurbineSecurityException if there is a problem while assigning 181 * the Permissions. 182 */ 183 public void grant(PermissionSet permissionSet) 184 throws TurbineSecurityException 185 { 186 for (Iterator permissions = permissionSet.iterator(); permissions.hasNext();) 187 { 188 TurbineSecurity.grant(this, (Permission) permissions.next()); 189 } 190 } 191 192 /** 193 * Revokes a Permission from this Role. 194 * 195 * @param permission A Permission. 196 * @throws TurbineSecurityException if there is a problem while unassigning 197 * the Permission. 198 */ 199 public void revoke(Permission permission) 200 throws TurbineSecurityException 201 { 202 TurbineSecurity.revoke(this, permission); 203 } 204 205 /** 206 * Revokes Permissions from a PermissionSet from this Role. 207 * 208 * @param permissionSet A PermissionSet. 209 * @throws TurbineSecurityException if there is a problem while unassigning 210 * the Permissions. 211 */ 212 public void revoke(PermissionSet permissionSet) 213 throws TurbineSecurityException 214 { 215 for (Iterator permissions = permissionSet.iterator(); permissions.hasNext();) 216 { 217 TurbineSecurity.revoke(this, (Permission) permissions.next()); 218 } 219 } 220 }