📄 resourcepermissionform.java
字号:
package com.sslexplorer.policyframework.forms;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionMapping;
import com.sslexplorer.boot.PropertyList;
import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.input.MultiSelectSelectionModel;
import com.sslexplorer.policyframework.Permission;
import com.sslexplorer.policyframework.PolicyConstants;
import com.sslexplorer.policyframework.Resource;
import com.sslexplorer.policyframework.ResourcePermission;
import com.sslexplorer.policyframework.ResourceType;
import com.sslexplorer.policyframework.ResourceTypeResourcePermission;
import com.sslexplorer.security.User;
import com.sslexplorer.tabs.TabModel;
public class ResourcePermissionForm extends AbstractResourceForm implements TabModel {
final static Log log = LogFactory.getLog(PoliciesForm.class);
private int selectedResourceTypeId;
private List resourceTypes;
private ResourceType resourceType;
private String[] selectedAvailablePermissions;
private List resourceTypePermissions;
private String[] selectedResourceTypePermissions;
private List availablePermissions;
private String selectedTab = "details";
private boolean onwardDelegation;
protected MultiSelectSelectionModel delegatedPolicyModel;
protected PropertyList selectedDelegatedPolicies;
public ResourcePermissionForm() {
super();
}
public int getSelectedResourceType() {
return selectedResourceTypeId;
}
public void setSelectedResourceType(int resourceType) {
this.selectedResourceTypeId = resourceType;
}
public int getTabCount() {
if(((ResourcePermission)getResource()).getPermissionClass().equals(PolicyConstants.PERSONAL_CLASS)) {
return 3;
}
else {
return 4;
}
}
public String getTabName(int idx) {
switch(idx) {
case 0:
return "details";
case 1:
return "permissions";
case 2:
return "policies";
default:
return "delegation";
}
}
public String getTabTitle(int idx) {
// Get from resources
return null;
}
public void initialise(User user, Resource resource, boolean editing, MultiSelectSelectionModel policyModel, PropertyList selectedPolicies, User owner) throws Exception {
super.initialise(user, resource, editing, policyModel, selectedPolicies, owner);
rebuild();
}
public void rebuild() throws Exception {
selectedAvailablePermissions = new String[0];
ResourcePermission dr = (ResourcePermission)resource;
List r = CoreServlet.getServlet().getPolicyDatabase().getResourceTypes(dr.getPermissionClass());
resourceTypes = new ArrayList();
for(Iterator i = r.iterator(); i.hasNext(); ) {
ResourceType rt = (ResourceType)i.next();
if(rt.getPermissions().size() > 0 ) {
resourceTypes.add(rt);
}
}
resourceTypePermissions = dr.getPermissions();
resourceTypes = new ArrayList();
availablePermissions = new ArrayList();
if(dr.getParentResourcePermission() == 0) {
resourceTypes = CoreServlet.getServlet().getPolicyDatabase().getResourceTypes(dr.getPermissionClass());
if(resourceType == null) {
resourceType = (ResourceType)resourceTypes.get(0);
}
availablePermissions = new ArrayList();
for(Iterator i = resourceType.getPermissions().iterator(); i.hasNext(); ) {
Permission perm = (Permission)i.next();
ResourceTypeResourcePermission rt = new ResourceTypeResourcePermission(resourceType, perm);
if(!resourceTypePermissions.contains(rt)) {
availablePermissions.add(perm);
}
}
}
else {
ResourcePermission parentResourcePermission =
CoreServlet.getServlet().getPolicyDatabase().getResourcePermission(dr.getParentResourcePermission());
for(Iterator j = parentResourcePermission.getPermissions().iterator(); j.hasNext(); ) {
ResourceTypeResourcePermission perm = (ResourceTypeResourcePermission)j.next();
if(!resourceTypes.contains(perm.getResourceType())) {
if(resourceType.getPermissions().size() > 0) {
resourceTypes.add(perm.getResourceType());
if(resourceType == null) {
resourceType = perm.getResourceType();
}
}
}
if(!resourceTypePermissions.contains(perm) && resourceType.equals(perm.getResourceType()) && !availablePermissions.contains(perm.getResourcePermission())) {
availablePermissions.add(perm.getResourcePermission());
}
}
}
// if(!CoreServlet.getServlet().getLogonController().isAdministrator(getUser())) {
// resourceTypes = new ArrayList();
// availablePermissions = new ArrayList();
// for(Iterator j = dr.getPermissions().iterator(); j.hasNext(); ) {
// ResourceTypeResourcePermission perm = (ResourceTypeResourcePermission)j.next();
// if(!resourceTypes.contains(perm.getResourceType())) {
// if(resourceType == null) {
// resourceType = perm.getResourceType();
// }
// resourceTypes.add(perm.getResourceType());
// }
// if(resourceType.equals(perm.getResourceType())) {
// if(!availablePermissions.contains(perm.getResourcePermission()) &&
// !resourceTypePermissions.contains(perm.getResourcePermission())) {
// availablePermissions.add(perm.getResourcePermission());
// }
// }
// }
// }
// else {
// resourceTypes = CoreServlet.getServlet().getPolicyDatabase().getResourceTypes(dr.getPermissionClass());
// if(resourceType == null) {
// resourceType = (ResourceType)resourceTypes.get(0);
// }
// availablePermissions = new ArrayList();
// for(Iterator i = resourceType.getPermissions().iterator(); i.hasNext(); ) {
// Permission perm = (Permission)i.next();
// if(!resourceTypePermissions.contains(perm)) {
// availablePermissions.add(perm);
// }
// }
// }
// List allAvailablePermission = resourceType.getPermissions();
// for(Iterator i = allAvailablePermission.iterator(); i.hasNext(); ) {
// Permission p = (Permission)i.next();
// boolean found = false;
// for(Iterator j = resourceTypePermissions.iterator(); j.hasNext(); ) {
// ResourceTypeResourcePermission rp = (ResourceTypeResourcePermission)j.next();
// if(rp.getResourcePermission() == p && rp.getResourceType() == resourceType) {
// found = true;
// }
// }
// if(!found) {
// availablePermissions.add(p);
// }
// }
}
public List getAvailablePermissions() {
return availablePermissions;
}
public void setAvailablePermissions(List availablePermissions) {
this.availablePermissions = availablePermissions;
}
public ResourceType getResourceType() {
return resourceType;
}
public void setResourceType(ResourceType resourceType) {
this.resourceType = resourceType;
}
public List getResourceTypePermissions() {
return resourceTypePermissions;
}
public void setResourceTypePermissions(List resourceTypePermissions) {
this.resourceTypePermissions = resourceTypePermissions;
}
public List getResourceTypes() {
return resourceTypes;
}
public void setResourceTypes(List resourceTypes) {
this.resourceTypes = resourceTypes;
}
public String[] getSelectedAvailablePermissions() {
return selectedAvailablePermissions;
}
public void setSelectedAvailablePermissions(String[] selectedAvailablePermissions) {
this.selectedAvailablePermissions = selectedAvailablePermissions;
}
public int getSelectedResourceTypeId() {
return selectedResourceTypeId;
}
public void setSelectedResourceTypeId(int selectedResourceTypeId) {
this.selectedResourceTypeId = selectedResourceTypeId;
}
public String[] getSelectedResourceTypePermissions() {
return selectedResourceTypePermissions;
}
public void setSelectedResourceTypePermissions(String[] selectedResourceTypePermissions) {
this.selectedResourceTypePermissions = selectedResourceTypePermissions;
}
public Resource getResourceByName(String name) throws Exception {
return CoreServlet.getServlet().getPolicyDatabase().getResourcePermissionByName(name);
}
public String getSelectedTab() {
return selectedTab;
}
public void setSelectedTab(String selectedTab) {
this.selectedTab = selectedTab;
}
public void applyToResource() {
((ResourcePermission)getResource()).setOnwardDelegatable(onwardDelegation);
}
public String getSelectedDelegatedPolicies() {
return selectedDelegatedPolicies.getAsTextFieldText();
}
public void setSelectedDelegatedPolicies(String selectedDelegatedPolicies) {
this.selectedDelegatedPolicies.setAsTextFieldText(selectedDelegatedPolicies);
}
public MultiSelectSelectionModel getDelegatedPolicyModel() {
return delegatedPolicyModel;
}
public void setDelegatedPolicyModel(MultiSelectSelectionModel delegatedPolicyModel) {
this.delegatedPolicyModel = delegatedPolicyModel;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
super.reset(mapping, request);
onwardDelegation = false;
}
public PropertyList getSelectedDelegatedPoliciesList() {
return selectedDelegatedPolicies;
}
public boolean getOnwardDelegation() {
return onwardDelegation;
}
public void setOnwardDelegation(boolean onwardDelegation) {
this.onwardDelegation = onwardDelegation;
}
public void setSelectedDelegatedPoliciesList(PropertyList selectedDelegatedPolicies) {
this.selectedDelegatedPolicies = selectedDelegatedPolicies;
}
/* (non-Javadoc)
* @see com.sslexplorer.tabs.TabModel#getTabBundle(int)
*/
public String getTabBundle(int idx) {
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -