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

📄 resourcepermissionpermissionsaction.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
/*
 *  SSL-Explorer
 *
 *  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
			
package com.sslexplorer.policyframework.wizards.actions;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.sslexplorer.core.CoreUtil;
import com.sslexplorer.policyframework.Permission;
import com.sslexplorer.policyframework.ResourceTypeResourcePermission;
import com.sslexplorer.policyframework.wizards.forms.ResourcePermissionPermissionsForm;
import com.sslexplorer.security.SessionInfo;
import com.sslexplorer.wizard.AbstractWizardSequence;
import com.sslexplorer.wizard.actions.AbstractWizardAction;
import com.sslexplorer.wizard.forms.AbstractWizardForm;

public class ResourcePermissionPermissionsAction extends AbstractWizardAction {
    
    public ResourcePermissionPermissionsAction() {
        super();
    }

    public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
        return SessionInfo.MANAGEMENT_CONSOLE_CONTEXT;
    } 

    protected AbstractWizardSequence createWizardSequence(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        throw new Exception("Cannot start wizard here.");
    }

    public ActionForward selectResourceType(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        applyToSequence(mapping, (AbstractWizardForm)form, request, response);
        return unspecified(mapping, form, request, response);
    } 
    
    public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    throws Exception {
        CoreUtil.addRequiredFieldMessage(this, request);
        return super.unspecified(mapping, form, request, response);
    }

    public ActionForward addSelected(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        applyToSequence(mapping, (AbstractWizardForm)form, request, response);
        ResourcePermissionPermissionsForm drpf = (ResourcePermissionPermissionsForm)form;
        String[] sel = drpf.getSelectedAvailablePermissions();
        AbstractWizardSequence seq = getWizardSequence(request); 
        List l = (List)seq.getAttribute(ResourcePermissionPermissionsForm.ATTR_RESOURCE_TYPE_PERMISSIONS, new ArrayList());
        for(int i = 0 ; i < sel.length; i++) {
            // Make sure the selected permission was one that the current user is actually allowed to use
            Permission perm = drpf.getResourceType().getPermission(Integer.parseInt(sel[i]));
            if(!drpf.getAvailablePermissions().contains(perm)) {
                throw new Exception("Permission denied.");
            }            
            l.add(new ResourceTypeResourcePermission(drpf.getResourceType(), perm));
        }
        seq.putAttribute(ResourcePermissionPermissionsForm.ATTR_RESOURCE_TYPE_PERMISSIONS, l);        
        return unspecified(mapping, form, request, response);
    }

    public ActionForward removeSelected(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        applyToSequence(mapping, (AbstractWizardForm)form, request, response);
        ResourcePermissionPermissionsForm drpf = (ResourcePermissionPermissionsForm)form;
        AbstractWizardSequence seq = getWizardSequence(request);
        String[] sel = drpf.getSelectedResourceTypePermissions();
        List l = (List)seq.getAttribute(ResourcePermissionPermissionsForm.ATTR_RESOURCE_TYPE_PERMISSIONS, new ArrayList());
        for(int i = 0; i < sel.length; i++) {
            int idx = sel[i].indexOf('-');
            int resourceTypeId = Integer.parseInt(sel[i].substring(0, idx));
            int permissionId = Integer.parseInt(sel[i].substring(idx + 1));
            ResourceTypeResourcePermission sp = null;
            for(Iterator j = l.iterator(); j.hasNext()  && sp == null; ) {
                ResourceTypeResourcePermission p = (ResourceTypeResourcePermission)j.next();
                if(p.getResourceType().getResourceTypeId() == resourceTypeId &&
                                p.getResourcePermission().getId() == permissionId) {
                    sp = p;
                }
            }
            if(sp != null) {
                l.remove(sp);
            }
        }
        return unspecified(mapping, form, request, response);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -