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

📄 abstractresourcedispatchaction.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }

    /**
     * View the resource. This sets the read only flag on the form and the
     * process as it if were an edit.
     * 
     * @param mapping mapping
     * @param form form
     * @param request request
     * @param response response
     * @return forward
     * @throws Exception
     */
    public ActionForward view(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
                    throws Exception {
        ((AbstractResourceForm) form).setReadOnly();
        return edit(mapping, form, request, response);
    }

    /**
     * Edit the resource. An instance of the resource to edit should have been
     * passed in as a session attribute {@link Constants#EDITING_RESOURCE}.
     * <p>
     * Permissions will be checked and the form initialised.
     * 
     * @param mapping mapping
     * @param form form
     * @param request request
     * @param response response
     * @return forward
     * @throws Exception on any error
     */
    public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
                    throws Exception {
        ((AbstractResourceForm) form).setEditing();
        Resource resource = (Resource) request.getSession().getAttribute(Constants.EDITING_RESOURCE);
        SessionInfo session = this.getSessionInfo();
        checkValid(resource, new Permission[] { getEditResourcePermission(), getCreateResourcePermission(), getAssignPermission() }, mapping, (AbstractResourceForm) form, request);
        User ownerUser = null;
        if (resource instanceof OwnedResource) {
            String owner = ((OwnedResource) resource).getOwnerUsername();
            if (owner != null && !owner.equals("")) {
                ownerUser = CoreServlet.getServlet().getUserDatabase().getAccount(owner);
            }
        }
        PropertyList selectedPolicies = new PropertyList();
        MultiSelectDataSource policies = createAvailablePoliciesDataSource(resource, mapping, form, request, response);
        List l = CoreServlet.getServlet().getPolicyDatabase().getPoliciesAttachedToResource(resource);
        for (Iterator i = l.iterator(); i.hasNext();) {
            selectedPolicies.add(String.valueOf(((Policy) i.next()).getResourceId()));
        }
        String referer = CoreUtil.getReferer(request);
        ((CoreForm) form).setReferer(referer);
        MultiSelectSelectionModel policyModel = new MultiSelectSelectionModel(policies, selectedPolicies);
        ((AbstractResourceForm) form).initialise(session.getUser(), resource, true, policyModel, selectedPolicies, ownerUser);
        return display(mapping, form, request, response);
    }

    /**
     * Confirm removal of the resource. This would usually forward on to a
     * struts path that points to the
     * {@link com.sslexplorer.navigation.actions.ConfirmAction}.
     * 
     * @param mapping mapping
     * @param form form
     * @param request request
     * @param response response
     * @return forward
     * @throws Exception on any error
     */
    public ActionForward confirmRemove(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                    HttpServletResponse response) throws Exception {
        return mapping.findForward("confirmRemove");
    }

    /**
     * Refresh this page. Simple forwards on to <i>refresh</i> forward from the
     * action mapping.
     * 
     * @param mapping mapping
     * @param form form
     * @param request request
     * @param response response
     * @return forward
     * @throws Exception on any error
     */
    public ActionForward refresh(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
                    throws Exception {
        return mapping.findForward("refresh");
    }

    /**
     * Display the resource. The <i>Required Field</i> message will be also be
     * added.
     * 
     * @param mapping mapping
     * @param form form
     * @param request request
     * @param response response
     * @return forward
     * @throws Exception on any error
     */
    public ActionForward display(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
                    throws Exception {
        CoreUtil.addRequiredFieldMessage(this, request);
        return mapping.findForward("display");
    }

    /**
     * Get the permission that is required for editing the resource or
     * <code>null</code> if no permission is required.
     * 
     * @return edit permission
     */
    public Permission getEditResourcePermission() {
        return editPermission;
    }

    /**
     * Get the permission that is required for assign policies to a resource
     * <code>null</code> if no permission is required.
     * 
     * @return assign permission
     */
    public Permission getAssignPermission() {
        return assignPermission;
    }

    /**
     * Get the permission that is required for creating the resource or
     * <code>null</code> if no permission is required.
     * 
     * @return create permission
     */

    public Permission getCreateResourcePermission() {
        return createPermission;
    }

    /**
     * Get the permission that is required for removing the resource or
     * <code>null</code> if no permission is required.
     * 
     * @return remove permission
     */
    public Permission getRemoveResourcePermission() {
        return removePermission;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.core.actions.AuthenticatedDispatchAction#cleanUpAndReturnToReferer(org.apache.struts.action.ActionMapping,
     *      org.apache.struts.action.ActionForm,
     *      javax.servlet.http.HttpServletRequest,
     *      javax.servlet.http.HttpServletResponse)
     */
    public ActionForward cleanUpAndReturnToReferer(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                    HttpServletResponse response) throws Exception {
        request.getSession().removeAttribute(Constants.EDITING_RESOURCE);
        return super.cleanUpAndReturnToReferer(mapping, form, request, response);
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.core.actions.CoreAction#getNavigationContext(org.apache.struts.action.ActionMapping,
     *      org.apache.struts.action.ActionForm,
     *      javax.servlet.http.HttpServletRequest,
     *      javax.servlet.http.HttpServletResponse)
     */
    public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
        return SessionInfo.MANAGEMENT_CONSOLE_CONTEXT | SessionInfo.USER_CONSOLE_CONTEXT;
    }

    /**
     * Check the resource is valid for management.
     * 
     * @param r resource
     * @param permissions permissions
     * @param mapping mappnig
     * @param form form
     * @param request request
     * @throws NoPermissionException
     */
    protected void checkValid(Resource r, Permission[] permissions, ActionMapping mapping, AbstractResourceForm form,
                    HttpServletRequest request) throws NoPermissionException {
        ResourceUtil.checkResourceManagementRights(r, this.getSessionInfo(), permissions);
    }
    
    /**
     * Create the resource.
     * 
     * @param mapping mapping
     * @param form form
     * @param request request
     * @param response response
     * @throws Exception on any error
     */
    protected void commitCreatedResource(ActionMapping mapping, AbstractResourceForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        throw new Exception("commitCreateResource() must be overidden to actually create the resource.");
    }

    protected MultiSelectDataSource createAvailablePoliciesDataSource(Resource resource, ActionMapping mapping, ActionForm form,
                    HttpServletRequest request, HttpServletResponse response) throws Exception {
        int parent = resource.getParentResourcePermission();
        return new ResourcePermissionGrantedPoliciesDatasource(parent == 0 ? null : CoreServlet.getServlet().getPolicyDatabase()
            .getResourcePermission(parent));
    }
}

⌨️ 快捷键说明

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