001: /*
002: * Copyright (c) 1999-2001 Lutris Technologies, Inc. All Rights
003: * Reserved.
004: *
005: * This source code file is distributed by Lutris Technologies, Inc. for
006: * use only by licensed users of product(s) that include this source
007: * file. Use of this source file or the software that uses it is covered
008: * by the terms and conditions of the Lutris Enhydra Development License
009: * Agreement included with this product.
010: *
011: * This Software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
012: * ANY KIND, either express or implied. See the License for the specific terms
013: * governing rights and limitations under the License.
014: *
015: * Contributor(s):
016: *
017: * $Id: NewMessenger.java,v 1.1 2006-09-11 12:29:11 sinisa Exp $
018: */
019:
020: package com.lutris.airsent.presentation.admin;
021:
022: import com.lutris.appserver.server.httpPresentation.*;
023: import com.lutris.appserver.server.session.*;
024: import com.lutris.util.*; //import com.lutris.xml.xmlc.*;
025: //import com.lutris.xml.xmlc.html.*;
026: import org.w3c.dom.*;
027: import org.w3c.dom.html.*;
028: import org.enhydra.xml.xmlc.XMLObject;
029: import java.util.*;
030:
031: import com.lutris.airsent.spec.*;
032: import com.lutris.airsent.presentation.*;
033:
034: import com.lutris.airsent.spec.messenger.Messenger;
035:
036: import com.lutris.airsent.spec.address.*;
037:
038: /**
039: * The login page of the AirSent app
040: *
041: */
042: public class NewMessenger extends BasePO {
043: private static final int AUTH_LEVEL = AirSentConstants.ADMINISTRATOR_USER;
044: private String _firstname = null;
045: private String _lastname = null;
046: private String _badge = null;
047: private String _password = null;
048: private String _repassword = null;
049: private String _email = null;
050: private String _phone = null;
051:
052: /**
053: * Superclass method override.
054: * returns the authorization level necessary to access this po.
055: *
056: * @return int required authorization level
057: */
058: public int getRequiredAuthLevel() {
059: return AUTH_LEVEL;
060: }
061:
062: /**
063: * Default event. Just show the page.
064: */
065: public XMLObject handleDefault()
066: throws AirSentPresentationException {
067: try {
068: Messenger messenger = null;
069: String id = getComms().request
070: .getParameter(AirSentConstants.MESSENGER_NAME);
071: if (id == null) {
072: getSessionData().setMessenger(null);
073: } else {
074: messenger = getMessenger(id);
075: if (messenger == null) {
076: return showPage("Messenger not found", null);
077: }
078: getSessionData().setMessenger(messenger);
079: }
080: return showPage(null, messenger);
081: } catch (Exception e) {
082: throw new AirSentPresentationException("", e);
083: }
084: }
085:
086: /**
087: *
088: */
089: public XMLObject handleNewMessenger()
090: throws HttpPresentationException {
091: try {
092: getParameters();
093:
094: Messenger messenger = getSessionData().getMessenger();
095: boolean virgin = true;
096: if (messenger != null) {
097: virgin = false;
098: }
099:
100: String err = validateForm(messenger);
101: if (err != null) {
102: return showPage(err, messenger);
103: }
104:
105: HomeManager hf = getApplication().getHomeManager();
106: if (virgin == true) {
107: messenger = hf.getMessengerManager()
108: .findByBadge(_badge);
109: if (messenger != null) {
110: return showPage("Badge already in use", null);
111: } else {
112: messenger = hf.getMessengerManager().create();
113: }
114: }
115:
116: if (virgin == true) {
117: messenger.setBadge(_badge);
118: messenger.setPassword(_password);
119: }
120: messenger.setFirstName(_firstname);
121: messenger.setLastName(_lastname);
122: messenger.setEmail(_email);
123: Address address = messenger.getAddress();
124: address.setLocalNumber(_phone);
125: messenger.save();
126: getSessionData().setMessenger(null);
127: throw new ClientPageRedirectException(
128: AirSentConstants.ADMIN_MAIN_PAGE);
129: /*
130: * Catch Null pointer exception ( we canot make a instances of classes from business layer when we run AirSent_pres )
131: * We need to allow AirSent_pres to be functional , response
132: * will be default HTML page with message
133: *
134: */
135: } catch (NullPointerException e) {
136: NewMessengerHTML page = (NewMessengerHTML) myComms.xmlcFactory
137: .create(NewMessengerHTML.class);
138: page
139: .setTextErrorText("You cannot Enter a New Messenger while running AirSent_pres");
140: return page;
141: } catch (Exception ex) {
142: throw new AirSentPresentationException(
143: "Exception saving messenger in user: ", ex);
144: }
145: }
146:
147: /**
148: *
149: */
150: private XMLObject showPage(String errorMsg, Messenger messenger)
151: throws Exception {
152: NewMessengerHTML page = (NewMessengerHTML) myComms.xmlcFactory
153: .create(NewMessengerHTML.class);
154: if (errorMsg != null
155: || (errorMsg = getSessionData()
156: .getAndClearUserMessage()) != null) {
157: page.setTextTitle("");
158: page.setTextErrorText(errorMsg);
159: } else {
160: page.getElementErrorText().getParentNode().removeChild(
161: page.getElementErrorText());
162: }
163:
164: if (messenger == null) {
165: page.setTextBadgeText("");
166: page.setTextPasswordText("");
167: Node n = page.getElementEditMessenger().getParentNode();
168: n.removeChild(page.getElementNewMessengerLink());
169: n.removeChild(page.getElementEditMessenger());
170: } else {
171: page.setTextTitle("Edit a messenger");
172: page.getElementBadge().getParentNode().removeChild(
173: page.getElementBadge());
174: page.setTextBadgeText(_badge);
175: page.setTextPasswordText(_password);
176: page.getElementPassword().getParentNode().removeChild(
177: page.getElementPassword());
178: Node n = page.getElementEditMessenger().getParentNode();
179: n.removeChild(page.getElementNewMessenger());
180: }
181: populateForm(page, messenger);
182: return page;
183: }
184:
185: /**
186: * Populates the form.
187: */
188: private void populateForm(NewMessengerHTML page, Messenger messenger) {
189: if (messenger == null) {
190: if (isNullField(_badge) == false) {
191: page.getElementBadge().setValue(_badge);
192: }
193: if (isNullField(_password) == false) {
194: page.getElementPassword().setValue(_password);
195: }
196: if (isNullField(_password) == false) {
197: page.getElementPasswordverify().setValue(_password);
198: }
199: }
200: if (isNullField(_firstname) == false) {
201: page.getElementFirstname().setValue(_firstname);
202: }
203: if (isNullField(_lastname) == false) {
204: page.getElementLastname().setValue(_lastname);
205: }
206:
207: if (isNullField(_phone) == false) {
208: page.getElementPhone().setValue(_phone);
209: }
210: if (isNullField(_email) == false) {
211: page.getElementEmail().setValue(_email);
212: }
213: }
214:
215: /**
216: * Validates the form data.
217: *
218: * @return error String
219: */
220: private String validateForm(Messenger messenger) {
221: if (messenger == null) {
222: if (isNullField(_password)) {
223: return "Please provide a password";
224: }
225: if (isNullField(_repassword)) {
226: return "Please verify password.";
227: }
228:
229: if (_password.equals(_repassword) == false) {
230: return "Please make sure your password and password confirmation match exactly";
231: }
232: }
233:
234: if (isNullField(_firstname)) {
235: return "Please provide a first name";
236: }
237: if (isNullField(_lastname)) {
238: return "Please provide a last name";
239: }
240: if (messenger == null) {
241: if (isNullField(_badge)) {
242: return "Please provide a badge";
243: }
244: }
245: if (isNullField(_email)) {
246: return "Please provide an email";
247: }
248: if (isNullField(_phone)) {
249: return "Please provide a phone number";
250: }
251: return null;
252: }
253:
254: /**
255: *
256: */
257: private Messenger getMessenger(String badge) throws Exception {
258: HomeManager hf = getApplication().getHomeManager();
259: Messenger messenger = hf.getMessengerManager().findByBadge(
260: badge);
261: if ((badge != null) && (messenger != null)) {
262: _firstname = messenger.getFirstName();
263: _lastname = messenger.getLastName();
264: _badge = messenger.getBadge();
265: _password = messenger.getPassword();
266: _repassword = _password;
267: _email = messenger.getEmail();
268: Address address = messenger.getAddress();
269: _phone = address.getLocalNumber();
270: }
271: return messenger;
272: }
273:
274: /**
275: *
276: */
277: private void getParameters() throws Exception {
278: _firstname = getComms().request
279: .getParameter(AirSentConstants.FIRST_NAME);
280: _lastname = getComms().request
281: .getParameter(AirSentConstants.LAST_NAME);
282: _badge = getComms().request
283: .getParameter(AirSentConstants.BADGE_NAME);
284: _repassword = getComms().request
285: .getParameter(AirSentConstants.PASSWORD_VERIFY_NAME);
286: _password = getComms().request
287: .getParameter(AirSentConstants.PASSWORD_NAME);
288: _email = getComms().request
289: .getParameter(AirSentConstants.EMAIL_NAME);
290: _phone = getComms().request
291: .getParameter(AirSentConstants.PHONE_NAME);
292: }
293: }
|