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    }