View Javadoc

    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 }