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
026 import org.apache.turbine.services.security.TurbineSecurity;
027 import org.apache.turbine.util.security.TurbineSecurityException;
028
029 /**
030 * This class represents the permissions that a Role has to access
031 * certain pages/functions within the system. The class implements
032 * Comparable so that when Permissions are added to a Set, they will
033 * be in alphabetical order by name.
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: TurbinePermission.java 1078552 2011-03-06 19:58:46Z tv $
039 */
040 public class TurbinePermission extends SecurityObject<Permission> implements Permission
041 {
042 /** Serial version */
043 private static final long serialVersionUID = -2193700445644560143L;
044
045 /**
046 * Constructs a new TurbinePermission.
047 */
048 public TurbinePermission()
049 {
050 super();
051 }
052
053 /**
054 * Constructs a new TurbinePermission with the sepcified name.
055 *
056 * @param name The name of the new object.
057 */
058 public TurbinePermission(String name)
059 {
060 super(name);
061 }
062
063 /**
064 * Makes changes made to the Permission attributes permanent.
065 *
066 * @throws TurbineSecurityException if there is a problem while saving data.
067 */
068 public void save() throws TurbineSecurityException
069 {
070 TurbineSecurity.savePermission(this);
071 }
072
073 /**
074 * not implemented
075 *
076 * @param conn
077 * @throws Exception
078 */
079 public void save(Connection conn) throws Exception
080 {
081 throw new Exception("not implemented");
082 }
083
084 /**
085 * not implemented
086 *
087 * @param dbname
088 * @throws Exception
089 */
090 public void save(String dbname) throws Exception
091 {
092 throw new Exception("not implemented");
093 }
094
095 /**
096 * Removes a permission from the system.
097 *
098 * @throws TurbineSecurityException if the Permission could not be removed.
099 */
100 public void remove() throws TurbineSecurityException
101 {
102 TurbineSecurity.removePermission(this);
103 }
104
105 /**
106 * Renames the permission.
107 *
108 * @param name The new Permission name.
109 * @throws TurbineSecurityException if the Permission could not be renamed.
110 */
111 public void rename(String name) throws TurbineSecurityException
112 {
113 TurbineSecurity.renamePermission(this, name);
114 }
115 }