📄 abstractresourcedispatchaction.java
字号:
}
/**
* 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 + -