1 14 package org.compiere.wstore; 15 16 import java.util.*; 17 import java.sql.*; 18 import javax.servlet.*; 19 import javax.servlet.http.*; 20 import javax.servlet.jsp.*; 21 import javax.servlet.jsp.tagext.*; 22 23 import org.apache.ecs.*; 24 import org.apache.ecs.xhtml.*; 25 import org.apache.log4j.Logger; 26 27 28 39 public class LoginLinkTag extends TagSupport 40 { 41 42 protected Logger log = Logger.getLogger (getClass()); 43 44 49 public int doStartTag() throws JspException 50 { 51 Properties ctx = JSPEnv.getCtx((HttpServletRequest)pageContext.getRequest()); 52 WebUser wu = getWebUser(ctx); 54 if (wu == null) 55 pageContext.getSession().removeAttribute(WebUser.NAME); 56 else 57 pageContext.getSession().setAttribute (WebUser.NAME, wu); 58 String serverContext = ctx.getProperty(JSPEnv.CTX_SERVER_CONTEXT); 60 HtmlCode html = null; 62 if (wu != null && wu.isValid()) 63 html = getWelcomeLink (serverContext, wu); 64 else 65 html = getLoginLink (serverContext); 66 JspWriter out = pageContext.getOut(); 68 80 html.output(out); 81 return (SKIP_BODY); 84 } 86 91 public int doEndTag() throws JspException 92 { 93 return EVAL_PAGE; 94 } 96 97 102 private WebUser getWebUser (Properties ctx) 103 { 104 WebUser wu = (WebUser)pageContext.getSession().getAttribute (WebUser.NAME); 106 if (wu != null) 107 log.debug("getWebUser - SessionContext:found " + wu); 108 else 109 { 110 wu = (WebUser)pageContext.getAttribute(WebUser.NAME); 111 if (wu != null) 112 log.debug ("getWebUser - Context:found " + wu); 113 } 114 if (wu != null) 115 return wu; 116 117 String cookieUser = JSPEnv.getCookieWebUser ((HttpServletRequest)pageContext.getRequest()); 119 if (cookieUser == null || cookieUser.trim().length() == 0) 120 log.debug ("getWebUser - no cookie"); 121 else 122 { 123 wu = WebUser.get (ctx, cookieUser); 125 log.debug ("getWebUser - got " + wu); 126 } 127 if (wu != null) 128 return wu; 129 return null; 131 } 133 134 135 140 private HtmlCode getLoginLink(String serverContext) 141 { 142 HtmlCode retValue = new HtmlCode(); 143 144 input button = new input(input.button, "Login", "Login"); 145 button.setOnClick("window.top.location.replace('https://" + serverContext + "/loginServlet');"); 146 retValue.addElement(button); 147 148 154 155 retValue.addElement(" "); 156 return retValue; 157 } 159 165 private HtmlCode getWelcomeLink(String serverContext, WebUser wu) 166 { 167 HtmlCode retValue = new HtmlCode(); 168 a a = new a("https://" + serverContext + "/login.jsp"); 170 a.setClass("menuMain"); 171 String msg = "Welcome " + wu.getName(); 172 a.addElement(msg); 173 retValue.addElement(a); 174 retValue.addElement(" "); 176 if (wu.isLoggedIn()) 177 { 178 input button = new input(input.button, "Update", "Update"); 179 button.setOnClick("window.top.location.replace('login.jsp');"); 180 retValue.addElement(button); 181 182 retValue.addElement(" "); 183 184 button = new input(input.button, "Logout", "Logout"); 185 button.setOnClick("window.top.location.replace('loginServlet?mode=logout');"); 186 retValue.addElement(button); 187 188 194 } 195 else 196 { 197 input button = new input (input.button, "Login", "Login"); 198 button.setOnClick ("window.top.location.replace('https://" + serverContext + "/login.jsp');"); 199 retValue.addElement (button); 200 } 201 retValue.addElement (" "); 202 return retValue; 204 } 206 } | Popular Tags |