1 package com.sslexplorer.policyframework.forms; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 7 import javax.servlet.http.HttpServletRequest ; 8 9 import org.apache.commons.logging.Log; 10 import org.apache.commons.logging.LogFactory; 11 import org.apache.struts.action.ActionMapping; 12 13 import com.sslexplorer.boot.PropertyList; 14 import com.sslexplorer.input.MultiSelectSelectionModel; 15 import com.sslexplorer.policyframework.AccessRight; 16 import com.sslexplorer.policyframework.AccessRights; 17 import com.sslexplorer.policyframework.Permission; 18 import com.sslexplorer.policyframework.PolicyDatabaseFactory; 19 import com.sslexplorer.policyframework.Resource; 20 import com.sslexplorer.policyframework.ResourceType; 21 import com.sslexplorer.security.SessionInfo; 22 import com.sslexplorer.security.User; 23 import com.sslexplorer.tabs.TabModel; 24 25 public class AccessRightsForm extends AbstractResourceForm implements TabModel { 26 27 final static Log log = LogFactory.getLog(PoliciesForm.class); 28 29 private int selectedResourceTypeId; 30 private List resourceTypes; 31 private ResourceType resourceType; 32 private String [] selectedAvailablePermissions; 33 private List resourceTypePermissions; 34 private String [] selectedResourceTypePermissions; 35 private List availablePermissions; 36 private String selectedTab = "details"; 37 38 public AccessRightsForm() { 39 super(); 40 } 41 42 public int getSelectedResourceType() { 43 return selectedResourceTypeId; 44 } 45 46 public void setSelectedResourceType(int resourceType) { 47 this.selectedResourceTypeId = resourceType; 48 } 49 50 public int getTabCount() { 51 return 3; 52 } 53 54 public String getTabName(int idx) { 55 switch(idx) { 56 case 0: 57 return "details"; 58 case 1: 59 return "permissions"; 60 default: 61 return "policies"; 62 } 63 } 64 65 public String getTabTitle(int idx) { 66 return null; 67 } 68 69 public void initialise(User user, Resource resource, boolean editing, MultiSelectSelectionModel policyModel, PropertyList selectedPolicies, User owner, boolean assignOnly) throws Exception { 70 super.initialise(user, resource, editing, policyModel, selectedPolicies, owner, assignOnly); 71 rebuild(); 72 } 73 74 public void rebuild() throws Exception { 75 selectedAvailablePermissions = new String [0]; 76 AccessRights dr = (AccessRights)resource; 77 List r = PolicyDatabaseFactory.getInstance().getResourceTypes(dr.getAccessRightsClass()); 78 resourceTypes = new ArrayList (); 79 for(Iterator i = r.iterator(); i.hasNext(); ) { 80 ResourceType rt = (ResourceType)i.next(); 81 if(rt.getPermissions().size() > 0 ) { 82 resourceTypes.add(rt); 83 } 84 } 85 resourceTypePermissions = dr.getAccessRights(); 86 resourceTypes = new ArrayList (); 87 availablePermissions = new ArrayList (); 88 resourceTypes = PolicyDatabaseFactory.getInstance().getResourceTypes(dr.getAccessRightsClass()); 89 if(resourceType == null) { 90 resourceType = (ResourceType)resourceTypes.get(0); 91 selectedResourceTypeId = resourceType.getResourceTypeId(); 92 } 93 availablePermissions = new ArrayList (); 94 for(Iterator i = resourceType.getPermissions().iterator(); i.hasNext(); ) { 95 Permission perm = (Permission)i.next(); 96 AccessRight rt = new AccessRight(resourceType, perm); 97 if(!resourceTypePermissions.contains(rt)) { 98 availablePermissions.add(perm); 99 } 100 } 101 } 102 103 public List getAvailablePermissions() { 104 return availablePermissions; 105 } 106 107 public void setAvailablePermissions(List availablePermissions) { 108 this.availablePermissions = availablePermissions; 109 } 110 111 public ResourceType getResourceType() { 112 return resourceType; 113 } 114 115 public void setResourceType(ResourceType resourceType) { 116 this.resourceType = resourceType; 117 } 118 119 public List getResourceTypePermissions() { 120 return resourceTypePermissions; 121 } 122 123 public void setResourceTypePermissions(List resourceTypePermissions) { 124 this.resourceTypePermissions = resourceTypePermissions; 125 } 126 127 public List getResourceTypes() { 128 return resourceTypes; 129 } 130 131 public void setResourceTypes(List resourceTypes) { 132 this.resourceTypes = resourceTypes; 133 } 134 135 public String [] getSelectedAvailablePermissions() { 136 return selectedAvailablePermissions; 137 } 138 139 public void setSelectedAvailablePermissions(String [] selectedAvailablePermissions) { 140 this.selectedAvailablePermissions = selectedAvailablePermissions; 141 } 142 143 public int getSelectedResourceTypeId() { 144 return selectedResourceTypeId; 145 } 146 147 public void setSelectedResourceTypeId(int selectedResourceTypeId) { 148 this.selectedResourceTypeId = selectedResourceTypeId; 149 } 150 151 public String [] getSelectedResourceTypePermissions() { 152 return selectedResourceTypePermissions; 153 } 154 155 public void setSelectedResourceTypePermissions(String [] selectedResourceTypePermissions) { 156 this.selectedResourceTypePermissions = selectedResourceTypePermissions; 157 } 158 159 public Resource getResourceByName(String name, SessionInfo session) throws Exception { 160 return PolicyDatabaseFactory.getInstance().getAccessRightsByName(name, session.getUser().getRealm().getRealmID()); 161 } 162 163 public String getSelectedTab() { 164 return selectedTab; 165 } 166 167 public void setSelectedTab(String selectedTab) { 168 this.selectedTab = selectedTab; 169 } 170 171 public void applyToResource() { 172 } 173 174 175 public void reset(ActionMapping mapping, HttpServletRequest request) { 176 super.reset(mapping, request); 177 } 178 179 182 public String getTabBundle(int idx) { 183 return null; 184 } 185 } 186 | Popular Tags |