KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > wstore > LoginLinkTag


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Smart Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2003 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

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 /**
29  * Login Link.
30  * Creates Login/Logout Link
31  * <pre>
32  * <cws:loginLink />
33  * Variable used - "webUser"
34  * </pre>
35  *
36  * @author Jorg Janke
37  * @version $Id: LoginLinkTag.java,v 1.17 2003/08/15 18:05:15 jjanke Exp $
38  */

39 public class LoginLinkTag extends TagSupport
40 {
41     /** Logger */
42     protected Logger log = Logger.getLogger (getClass());
43
44     /**
45      * Start Tag
46      * @return SKIP_BODY
47      * @throws JspException
48      */

49     public int doStartTag() throws JspException
50     {
51         Properties ctx = JSPEnv.getCtx((HttpServletRequest)pageContext.getRequest());
52         //
53
WebUser wu = getWebUser(ctx);
54         if (wu == null)
55             pageContext.getSession().removeAttribute(WebUser.NAME);
56         else
57             pageContext.getSession().setAttribute (WebUser.NAME, wu);
58         //
59
String JavaDoc serverContext = ctx.getProperty(JSPEnv.CTX_SERVER_CONTEXT);
60     // log.debug ("doStartTag - ServerContext=" + serverContext);
61
HtmlCode html = null;
62         if (wu != null && wu.isValid())
63             html = getWelcomeLink (serverContext, wu);
64         else
65             html = getLoginLink (serverContext);
66         //
67
JspWriter out = pageContext.getOut();
68         /**
69         // Delete Cookie Call
70         if (cookieUser != null && !cookieUser.equals(" "))
71         {
72             log.debug("- Cookie=" + cookieUser);
73             html.addElement(" ");
74             a a = new a("loginServlet?mode=deleteCookie");
75             a.setClass("menuDetail");
76             a.addElement("(Delete&nbsp;Cookie)");
77             html.addElement(a);
78         }
79         **/

80         html.output(out);
81         //
82
//
83
return (SKIP_BODY);
84     } // doStartTag
85

86     /**
87      * End Tag
88      * @return EVAL_PAGE
89      * @throws JspException
90      */

91     public int doEndTag() throws JspException
92     {
93         return EVAL_PAGE;
94     } // doEndTag
95

96
97     /**
98      * Get WebUser.
99      * @param ctx context
100      * @return Web User or null
101      */

102     private WebUser getWebUser (Properties ctx)
103     {
104         // Get stored User
105
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         // Check Coockie
118
String JavaDoc cookieUser = JSPEnv.getCookieWebUser ((HttpServletRequest)pageContext.getRequest());
119         if (cookieUser == null || cookieUser.trim().length() == 0)
120             log.debug ("getWebUser - no cookie");
121         else
122         {
123             // Try to Load
124
wu = WebUser.get (ctx, cookieUser);
125             log.debug ("getWebUser - got " + wu);
126         }
127         if (wu != null)
128             return wu;
129         //
130
return null;
131     } // getWebUser
132

133     /*************************************************************************/
134
135     /**
136      * Get Login Link
137      * @param serverContext server context
138      * @return link
139      */

140     private HtmlCode getLoginLink(String JavaDoc 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         /** Link
149         a a = new a("https://" + serverContext + "/login.jsp");
150         a.setClass("menuMain");
151         a.addElement("Login");
152         retValue.addElement(a);
153         **/

154
155         retValue.addElement(" ");
156         return retValue;
157     } // getLoginLink
158

159     /**
160      * Get Welcome Link
161      * @param serverContext server Context
162      * @param wu web user
163      * @return link
164      */

165     private HtmlCode getWelcomeLink(String JavaDoc serverContext, WebUser wu)
166     {
167         HtmlCode retValue = new HtmlCode();
168         //
169
a a = new a("https://" + serverContext + "/login.jsp");
170         a.setClass("menuMain");
171         String JavaDoc msg = "Welcome " + wu.getName();
172         a.addElement(msg);
173         retValue.addElement(a);
174         //
175
retValue.addElement(" &nbsp; ");
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             /** Link
189             a = new a ("loginServlet?mode=logout");
190             a.setClass ("menuMain");
191             a.addElement ("Logout");
192             retValue.addElement (a);
193             **/

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         //
203
return retValue;
204     } // getWelcomeLink
205

206 } // LoginLinkTag
207
Popular Tags