001 package org.apache.turbine.om.security; 002 003 004 /* 005 * Licensed to the Apache Software Foundation (ASF) under one 006 * or more contributor license agreements. See the NOTICE file 007 * distributed with this work for additional information 008 * regarding copyright ownership. The ASF licenses this file 009 * to you under the Apache License, Version 2.0 (the 010 * "License"); you may not use this file except in compliance 011 * with the License. You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, 016 * software distributed under the License is distributed on an 017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 018 * KIND, either express or implied. See the License for the 019 * specific language governing permissions and limitations 020 * under the License. 021 */ 022 023 024 import java.sql.Connection; 025 import java.util.Iterator; 026 027 import org.apache.turbine.services.security.TurbineSecurity; 028 import org.apache.turbine.util.security.PermissionSet; 029 import org.apache.turbine.util.security.TurbineSecurityException; 030 031 /** 032 * This class represents a role played by the User associated with the 033 * current Session. 034 * 035 * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a> 036 * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a> 037 * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a> 038 * @version $Id: TurbineRole.java 1078552 2011-03-06 19:58:46Z tv $ 039 */ 040 public class TurbineRole extends SecurityObject<Role> implements Role 041 { 042 /** Serial version */ 043 private static final long serialVersionUID = -1354408789347969126L; 044 045 /** 046 * Constructs a new Role 047 */ 048 public TurbineRole() 049 { 050 super(); 051 } 052 053 /** 054 * Constructs a new Role with the sepcified name. 055 * 056 * @param name The name of the new object. 057 */ 058 public TurbineRole(String name) 059 { 060 super(name); 061 } 062 063 /** The permissions for this role. */ 064 private PermissionSet permissionSet = null; 065 066 /** 067 * Returns the set of Permissions associated with this Role. 068 * 069 * @return A PermissionSet. 070 * @exception Exception a generic exception. 071 */ 072 public PermissionSet getPermissions() 073 throws Exception 074 { 075 return permissionSet; 076 } 077 078 /** 079 * Sets the Permissions associated with this Role. 080 * 081 * @param permissionSet A PermissionSet. 082 */ 083 public void setPermissions(PermissionSet permissionSet) 084 { 085 this.permissionSet = permissionSet; 086 } 087 088 // These following methods are wrappers around TurbineSecurity 089 090 /** 091 * Creates a new Role in the system. 092 * 093 * @param name The name of the new Role. 094 * @return An object representing the new Role. 095 * @throws TurbineSecurityException if the Role could not be created. 096 */ 097 public Role create(String name) 098 throws TurbineSecurityException 099 { 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 }