001: package org.apache.turbine.om.security;
002:
003: /*
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021:
022: import java.io.Serializable;
023:
024: import org.apache.turbine.util.security.PermissionSet;
025: import org.apache.turbine.util.security.TurbineSecurityException;
026:
027: /**
028: * This class represents a role played by the User associated with the
029: * current Session.
030: *
031: * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a>
032: * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a>
033: * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
034: * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
035: * @version $Id: Role.java 534527 2007-05-02 16:10:59Z tv $
036: */
037: public interface Role extends SecurityEntity, Serializable {
038: /**
039: * Returns the set of Permissions associated with this Role.
040: *
041: * @return A PermissionSet.
042: * @exception Exception A generic exception.
043: */
044: PermissionSet getPermissions() throws Exception;
045:
046: /**
047: * Sets the Permissions associated with this Role.
048: *
049: * @param permissionSet A PermissionSet.
050: */
051: void setPermissions(PermissionSet permissionSet);
052:
053: // These following methods are wrappers around TurbineSecurity
054:
055: /**
056: * Creates a new Role in the system.
057: *
058: * @param name The name of the new Role.
059: * @return An object representing the new Role.
060: * @throws TurbineSecurityException if the Role could not be created.
061: */
062: Role create(String name) throws TurbineSecurityException;
063:
064: /**
065: * Makes changes made to the Role attributes permanent.
066: *
067: * @throws TurbineSecurityException if there is a problem while
068: * saving data.
069: */
070: void save() throws TurbineSecurityException;
071:
072: /**
073: * Removes a role from the system.
074: *
075: * @throws TurbineSecurityException if the Role could not be removed.
076: */
077: void remove() throws TurbineSecurityException;
078:
079: /**
080: * Renames the role.
081: *
082: * @param name The new Role name.
083: * @throws TurbineSecurityException if the Role could not be renamed.
084: */
085: void rename(String name) throws TurbineSecurityException;
086:
087: /**
088: * Grants a Permission to this Role.
089: *
090: * @param permission A Permission.
091: * @throws TurbineSecurityException if there is a problem while assigning
092: * the Permission.
093: */
094: void grant(Permission permission) throws TurbineSecurityException;
095:
096: /**
097: * Grants Permissions from a PermissionSet to this Role.
098: *
099: * @param permissionSet A PermissionSet.
100: * @throws TurbineSecurityException if there is a problem while assigning
101: * the Permissions.
102: */
103: void grant(PermissionSet permissionSet)
104: throws TurbineSecurityException;
105:
106: /**
107: * Revokes a Permission from this Role.
108: *
109: * @param permission A Permission.
110: * @throws TurbineSecurityException if there is a problem while unassigning
111: * the Permission.
112: */
113: void revoke(Permission permission) throws TurbineSecurityException;
114:
115: /**
116: * Revokes Permissions from a PermissionSet from this Role.
117: *
118: * @param permissionSet A PermissionSet.
119: * @throws TurbineSecurityException if there is a problem while unassigning
120: * the Permissions.
121: */
122: void revoke(PermissionSet permissionSet)
123: throws TurbineSecurityException;
124: }
|