1 19 20 package com.sslexplorer.policyframework.wizards.forms; 21 22 import java.util.ArrayList ; 23 import java.util.Collection ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 import java.util.TreeSet ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 30 import org.apache.struts.Globals; 31 import org.apache.struts.action.ActionErrors; 32 import org.apache.struts.action.ActionMapping; 33 34 import com.sslexplorer.core.BundleActionMessage; 35 import com.sslexplorer.policyframework.AccessRight; 36 import com.sslexplorer.policyframework.Permission; 37 import com.sslexplorer.policyframework.PolicyConstants; 38 import com.sslexplorer.policyframework.PolicyDatabaseFactory; 39 import com.sslexplorer.policyframework.ResourceType; 40 import com.sslexplorer.wizard.AbstractWizardSequence; 41 import com.sslexplorer.wizard.forms.DefaultWizardForm; 42 43 50 public class AccessRightsPermissionsForm extends DefaultWizardForm { 51 52 private int selectedResourceTypeId; 53 private Collection <ResourceType> resourceTypes; 54 private ResourceType selectedResourceType; 55 private String [] selectedAvailablePermissions; 56 private List resourceTypePermissions; 57 private String [] selectedResourceTypePermissions; 58 private List <Permission> availablePermissions; 59 60 63 public final static String ATTR_RESOURCE_TYPE = "resourceType"; 64 65 68 public final static String ATTR_RESOURCE_TYPE_PERMISSIONS = "resourceTypePermissions"; 69 70 73 public AccessRightsPermissionsForm() { 74 super(true, true, "/WEB-INF/jsp/content/policyframework/accessRightsWizard/accessRightsPermissions.jspf", "resourceType", 75 true, false, "accessRightsPermissions", "policyframework", "accessRightsWizard.permissions", 2); 76 } 77 78 81 public int getSelectedResourceType() { 82 return selectedResourceTypeId; 83 } 84 85 88 public void setSelectedResourceType(int resourceType) { 89 this.selectedResourceTypeId = resourceType; 90 } 91 92 97 public void apply(AbstractWizardSequence sequence) throws Exception { 98 super.apply(sequence); 99 sequence.putAttribute(ATTR_RESOURCE_TYPE, new Integer (selectedResourceTypeId)); 100 } 101 102 108 public void init(AbstractWizardSequence sequence, HttpServletRequest request) throws Exception { 109 super.init(sequence, request); 110 String permissionClass = (String ) sequence.getAttribute(AccessRightsDetailsForm.ATTR_RESOURCE_PERMISSION_CLASS, 111 PolicyConstants.DELEGATION_CLASS); 112 selectedAvailablePermissions = new String [0]; 113 resourceTypePermissions = (List ) sequence.getAttribute(ATTR_RESOURCE_TYPE_PERMISSIONS, new ArrayList ()); 114 availablePermissions = new ArrayList <Permission>(); 115 Collection <Permission> allAvailablePermissions = new TreeSet <Permission>(); 116 if (sequence.hasAttribute(ATTR_RESOURCE_TYPE)) { 117 selectedResourceType = PolicyDatabaseFactory.getInstance().getResourceType( 118 ((Integer ) sequence.getAttribute(ATTR_RESOURCE_TYPE, null)).intValue()); 119 } 120 resourceTypes = new TreeSet <ResourceType>(); 121 List r = PolicyDatabaseFactory.getInstance().getResourceTypes(permissionClass); 122 for (Iterator i = r.iterator(); i.hasNext();) { 123 ResourceType rt = (ResourceType) i.next(); 124 if (rt.getPermissions().size() > 0) { 125 resourceTypes.add(rt); 126 } 127 } 128 if (selectedResourceType == null) { 129 selectedResourceType = resourceTypes.iterator().next(); 130 } 131 allAvailablePermissions.addAll(selectedResourceType.getPermissions()); 132 133 selectedResourceTypeId = selectedResourceType.getResourceTypeId(); 134 for (Iterator i = allAvailablePermissions.iterator(); i.hasNext();) { 135 Permission p = (Permission) i.next(); 136 boolean found = false; 137 for (Iterator j = resourceTypePermissions.iterator(); j.hasNext();) { 138 AccessRight rp = (AccessRight) j.next(); 139 if (rp.getPermission() == p && rp.getResourceType() == selectedResourceType) { 140 found = true; 141 } 142 } 143 if (!found) { 144 availablePermissions.add(p); 145 } 146 } 147 } 148 149 152 public Collection getResourceTypes() { 153 return resourceTypes; 154 } 155 156 159 public ResourceType getResourceType() { 160 return selectedResourceType; 161 } 162 163 166 public String [] getSelectedAvailablePermissions() { 167 return selectedAvailablePermissions; 168 } 169 170 174 public void setSelectedAvailablePermissions(String [] selectedAvailablePermissions) { 175 this.selectedAvailablePermissions = selectedAvailablePermissions; 176 } 177 178 181 public List getResourceTypePermissions() { 182 return resourceTypePermissions; 183 } 184 185 188 public String [] getSelectedResourceTypePermissions() { 189 return selectedResourceTypePermissions; 190 } 191 192 196 public void setSelectedResourceTypePermissions(String [] selectedResourceTypePermissions) { 197 this.selectedResourceTypePermissions = selectedResourceTypePermissions; 198 } 199 200 203 public List getAvailablePermissions() { 204 return availablePermissions; 205 } 206 } | Popular Tags |