⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resourcepermissionform.java

📁 这是linux下ssl vpn的实现程序
💻 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 + -