PermissionControl.java
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 4k
Category:

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c) JForum Team
  3.  * All rights reserved.
  4.  * 
  5.  * Redistribution and use in source and binary forms, 
  6.  * with or without modification, are permitted provided 
  7.  * that the following conditions are met:
  8.  * 
  9.  * 1) Redistributions of source code must retain the above 
  10.  * copyright notice, this list of conditions and the 
  11.  * following  disclaimer.
  12.  * 2)  Redistributions in binary form must reproduce the 
  13.  * above copyright notice, this list of conditions and 
  14.  * the following disclaimer in the documentation and/or 
  15.  * other materials provided with the distribution.
  16.  * 3) Neither the name of "Rafael Steil" nor 
  17.  * the names of its contributors may be used to endorse 
  18.  * or promote products derived from this software without 
  19.  * specific prior written permission.
  20.  * 
  21.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
  22.  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
  23.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  24.  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  25.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  26.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
  27.  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
  28.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  29.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  30.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
  31.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
  32.  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  33.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
  34.  * IN CONTRACT, STRICT LIABILITY, OR TORT 
  35.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
  36.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  37.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
  38.  * 
  39.  * This file creation date: Oct 10, 2003 / 21:46:35 PM
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum.security;
  44. import java.io.Serializable;
  45. import net.jforum.dao.GroupSecurityDAO;
  46. /**
  47.  * Methods and properties for all classes that need make use of security actions.
  48.  * 
  49.  * @author Rafael Steil
  50.  * @version $Id: PermissionControl.java,v 1.19 2007/04/12 02:11:55 rafaelsteil Exp $
  51.  */
  52. public class PermissionControl implements Serializable
  53. {
  54. private RoleCollection roles;
  55. private transient GroupSecurityDAO smodel;
  56. public void setRoles(RoleCollection roles)
  57. {
  58. this.roles = roles;
  59. }
  60. public void setSecurityModel(GroupSecurityDAO smodel)
  61. {
  62. this.smodel = smodel;
  63. }
  64. public void addRole(int id, Role role)
  65. {
  66. this.smodel.addRole(id, role);
  67. }
  68. public void addRole(int id, Role role, RoleValueCollection roleValues)
  69. {
  70. this.smodel.addRole(id, role, roleValues);
  71. }
  72. public void addRoleValue(int id, Role role, RoleValueCollection roleValues)
  73. {
  74. this.smodel.addRoleValue(id, role, roleValues);
  75. }
  76. public void deleteAllRoles(int id)
  77. {
  78. this.smodel.deleteAllRoles(id);
  79. }
  80. /**
  81.  * Gets a role.
  82.  * 
  83.  * @param roleName
  84.  *            The role's name
  85.  * @return A <code>Role</code> object if the role was found, or <code>null</code> if not
  86.  *         found.
  87.  */
  88. public Role getRole(String roleName)
  89. {
  90. return this.roles.get(roleName);
  91. }
  92. /**
  93.  * @see net.jforum.security.PermissionControl#canAccess(java.lang.String)
  94.  * @param roleName
  95.  *            String
  96.  * @return boolean
  97.  */
  98. public boolean canAccess(String roleName)
  99. {
  100. return this.roles.containsKey(roleName);
  101. }
  102. /**
  103.  * @see net.jforum.security.PermissionControl#canAccess(java.lang.String, java.lang.String)
  104.  * @return boolean
  105.  * @param roleName
  106.  *            String
  107.  * @param roleValue
  108.  *            String
  109.  */
  110. public boolean canAccess(String roleName, String roleValue)
  111. {
  112. Role role = this.roles.get(roleName);
  113. if (role == null) {
  114. return false;
  115. }
  116. return role.getValues().contains(new RoleValue(roleValue));
  117. }
  118. }