1 16 package org.jmanage.webui.taglib.html; 17 18 import org.jmanage.webui.util.RequestParams; 19 import org.jmanage.webui.util.Utils; 20 import org.jmanage.webui.util.WebContext; 21 import org.jmanage.core.services.AccessController; 22 23 import javax.servlet.jsp.JspException ; 24 import javax.servlet.jsp.JspWriter ; 25 import javax.servlet.ServletRequest ; 26 import javax.servlet.http.HttpServletRequest ; 27 import java.io.IOException ; 28 29 34 public class LinkTag extends org.apache.struts.taglib.html.LinkTag { 35 36 private String acl; 37 private boolean hasAccess = true; 38 39 public String getAcl(){ 40 return acl; 41 } 42 43 public void setAcl(String acl){ 44 this.acl = acl; 45 } 46 47 public int doStartTag() throws JspException { 48 if(acl!=null){ 49 WebContext context = WebContext.get( 50 (HttpServletRequest )pageContext.getRequest()); 51 if(!AccessController.canAccess(Utils.getServiceContext(context),acl)){ 52 hasAccess = false; 53 return SKIP_BODY; 54 } 55 } 56 return super.doStartTag(); 57 } 58 59 public int doEndTag() throws JspException { 60 if(!hasAccess){ 61 hasAccess = true; 62 return EVAL_PAGE; 63 } 64 return super.doEndTag(); 65 } 66 protected String calculateURL() throws JspException { 67 String url = super.calculateURL(); 68 url = appendQueryStringParams(url); 69 return url; 70 } 71 72 private String appendQueryStringParams(String url) { 73 if(url.toLowerCase().startsWith("javascript:")){ 74 return url; 75 } 76 ServletRequest request = pageContext.getRequest(); 77 String applicationId = 78 request.getParameter(RequestParams.APPLICATION_ID); 79 if (applicationId != null) { 80 url = Utils.appendURLParam(url, RequestParams.APPLICATION_ID, 81 applicationId); 82 } 83 String objectName = 84 request.getParameter(RequestParams.OBJECT_NAME); 85 if (objectName != null) { 86 url = Utils.appendURLParam(url, RequestParams.OBJECT_NAME, 87 objectName); 88 } 89 return url; 90 } 91 } 92 | Popular Tags |