package
org.projectapollo.demo;
import apollo.*;
import apollo.Log.*;
import apollo.Template.*;
import apollo.Storable.*;
import apollo.Session.*;
import
org.projectapollo.demo.Storable.*;
import
org.projectapollo.demo.Home.LeftFrame.*;
import java.util.*;
public class
CreateAccountHandler implements
PageHandler {
private
Vector AS;
private
AcceptClause displayEntry;
private
AcceptClause createAccount;
private
AcceptClause createAccountIncomplete;
private
ManagerTracker MT;
private
String FQUID;
public
CreateAccountHandler(ManagerTracker MT, String fquid, PageBroker PB) throws
TemplatePageException {
this.MT=MT;
this.FQUID=fquid;
MT.getPM().registerTemplatePage(FQUID, new
TemplatePage(MT,this,
"createaccount.html"));
AS = new
Vector();
displayEntry= new
AcceptClause("DisplayEntry");
createAccount= new
AcceptClause("CreateAccount");
createAccount.addAcceptClause(AcceptClause.STRING, "Create",
AcceptClause.REQUIRED);
createAccount.addAcceptClause(AcceptClause.STRING, "UserID",
AcceptClause.REQUIRED);
createAccount.addAcceptClause(AcceptClause.STRING, "Password",
AcceptClause.OPTIONAL);
createAccount.addAcceptClause(AcceptClause.STRING, "FirstName",
AcceptClause.OPTIONAL);
createAccount.addAcceptClause(AcceptClause.STRING, "LastName",
AcceptClause.OPTIONAL);
createAccount.addAcceptClause(AcceptClause.STRING, "EmailAddress",
AcceptClause.OPTIONAL);
createAccountIncomplete = new
AcceptClause("CreateAccountIncomplete");
createAccountIncomplete.addAcceptClause(AcceptClause.STRING, "Create",
AcceptClause.REQUIRED);
AS.addElement(createAccount);
AS.addElement(createAccountIncomplete);
AS.addElement(displayEntry);
}
public
String getFQUID() {
return
this.FQUID;
}
public
HTTPResponse handleRequest(TransactionTracker TT, String fquid, HTTPRequest req,
WebSession thisSession) throws
ApolloException {
EntryAssertionManager EAM = new
EntryAssertionManager(MT, AS);
EAM.evaluate(req);
//display user first
name next to 'welcome'
//get user obj from
session
Hashtable RT = new
Hashtable();
RT.put("JSAlert",
new
Boolean(false));
if
(EAM.isAccept(createAccount)) {
User u = User.loadInstance(MT, new
Object[] {EAM.getString("UserID")});
if
(u!=null)
{
RT.put("JSAlert",
new
Boolean(true));
RT.put("JSMessage",
"That account already
exists!");
} else
{
u = new
User(EAM.getString("UserID"),
EAM.getString("FirstName"),
EAM.getString("LastName"),EAM.getString("Password"),
EAM.getString("EmailAddress"));
u.insert(MT);
RT.put("JSAlert",
new
Boolean(true));
RT.put("JSMessage",
"You may now log in as
"+u.getUserID());
return
MT.getPM().handleRequest(TT, "",req,null);
}
}
if
(EAM.isAccept(createAccountIncomplete)) {
RT.put("JSAlert",
new
Boolean(true));
RT.put("JSMessage",
"You did not fill in
the entire form!");
}
return
MT.getPM().getPage(FQUID).render(RT,thisSession);
}// end render
}