188 lines
4.4 KiB
Java
Executable File
188 lines
4.4 KiB
Java
Executable File
package org.thdl.roster.pages;
|
|
|
|
import java.util.*;
|
|
import java.text.*;
|
|
import org.apache.torque.*;
|
|
import org.apache.tapestry.*;
|
|
import org.apache.tapestry.html.BasePage;
|
|
|
|
import org.thdl.users.*;
|
|
import org.thdl.roster.*;
|
|
import org.thdl.roster.om.*;
|
|
import org.thdl.roster.components.Border;
|
|
import org.apache.log4j.*;
|
|
|
|
public class Login extends RosterPage
|
|
{
|
|
//attributes
|
|
private boolean newUser;
|
|
private String login;
|
|
private String password;
|
|
private String passwordCopy;
|
|
private String forward;
|
|
//accessors
|
|
public void setNewUser(boolean newUser) {
|
|
this.newUser = newUser;
|
|
}
|
|
public boolean getNewUser() {
|
|
return newUser;
|
|
}
|
|
public void setLogin(String login) {
|
|
this.login = login;
|
|
}
|
|
public void setPassword(String password) {
|
|
this.password = password;
|
|
}
|
|
public String getLogin() {
|
|
return login;
|
|
}
|
|
public String getPassword() {
|
|
return password;
|
|
}
|
|
public void setPasswordCopy(String passwordCopy) {
|
|
this.passwordCopy = passwordCopy;
|
|
}
|
|
public String getPasswordCopy() {
|
|
return passwordCopy;
|
|
}
|
|
public void setForward(String forward) {
|
|
this.forward = forward;
|
|
Tapestry.fireObservedChange( this, "forward", forward );
|
|
}
|
|
public String getForward() {
|
|
if (null == forward)
|
|
{
|
|
setForward( "Home" );
|
|
}
|
|
return forward;
|
|
}
|
|
//helpers
|
|
public boolean validateUser()
|
|
{
|
|
boolean rVal = false;
|
|
try
|
|
{
|
|
ThdlUser thdlUser = new ThdlUser();
|
|
thdlUser.setUsername( getLogin() );
|
|
thdlUser.setPassword( getPassword() );
|
|
thdlUser = ThdlUserRepository.getInstance().validate( thdlUser, "roster" );
|
|
rVal = true;
|
|
Visit visit = (Visit) getVisit();
|
|
visit.setThdlUser( thdlUser );
|
|
visit.setAuthenticated( true );
|
|
}
|
|
catch (ThdlUserRepositoryException ture)
|
|
{
|
|
setMessage( ture.getMessage() );
|
|
}
|
|
catch ( java.sql.SQLException e )
|
|
{
|
|
throw new ApplicationRuntimeException( e );
|
|
}
|
|
|
|
return rVal;
|
|
}
|
|
//tapestry helpers
|
|
public void detach()
|
|
{
|
|
setLogin( null );
|
|
setPassword( null );
|
|
setPasswordCopy( null );
|
|
setMessage( null );
|
|
setWarning( null );
|
|
setNewUser( false );
|
|
super.detach();
|
|
}
|
|
//tapestry listeners
|
|
public void registerNewUser(IRequestCycle cycle)
|
|
{
|
|
setNewUser( true );
|
|
}
|
|
public void loginFormSubmit(IRequestCycle cycle)
|
|
{
|
|
if ( validateUser() )
|
|
{
|
|
proceed( cycle );
|
|
}
|
|
}
|
|
private void proceed( IRequestCycle cycle )
|
|
{
|
|
Visit visit = (Visit) getVisit();
|
|
|
|
//do some logging
|
|
String name = visit.getThdlUser().getFirstname() + " " + visit.getThdlUser().getLastname() ;
|
|
Date now = new Date( System.currentTimeMillis() );
|
|
String date = new SimpleDateFormat().format( now );
|
|
Logger logger = Logger.getLogger( "org.thdl.roster.pages" );
|
|
logger.info( name + " logged in at " + date );
|
|
Member member = (Member) visit.getMember();
|
|
if ( null != member && member.isNew() )
|
|
{
|
|
try
|
|
{
|
|
member.getContactInfo().setContactName( visit.getThdlUser().getFirstname() + " " + visit.getThdlUser().getLastname() );
|
|
member.getContactInfo().setEmail( visit.getThdlUser().getEmail() );
|
|
}
|
|
catch ( TorqueException te )
|
|
{
|
|
throw new ApplicationRuntimeException( te );
|
|
}
|
|
}
|
|
RosterPage page = (RosterPage) cycle.getPage( getForward() );
|
|
page.validate( cycle );
|
|
cycle.activate( page );
|
|
}
|
|
public void sendInfoFormSubmit(IRequestCycle cycle)
|
|
{
|
|
Visit visit = (Visit) getVisit();
|
|
}
|
|
public void newUserFormSubmit(IRequestCycle cycle)
|
|
{
|
|
Visit visit = (Visit) getVisit();
|
|
try
|
|
{
|
|
boolean insertUser=false;
|
|
if ( ThdlUserRepository.getInstance().doesNotAlreadyExist( visit.getThdlUser() ) )
|
|
{
|
|
insertUser=true;
|
|
}
|
|
if ( ! getPassword().equals( getPasswordCopy() ) )
|
|
{
|
|
insertUser=false;
|
|
setWarning( "Your two password entries were not the same. Please re-enter your password." );
|
|
}
|
|
else
|
|
{
|
|
visit.getThdlUser().setPassword( getPassword() );
|
|
}
|
|
|
|
if ( insertUser )
|
|
{
|
|
ThdlUserRepository.getInstance().insertUser( visit.getThdlUser() );
|
|
setMessage( "Your new user entry was successfully submitted." );
|
|
visit.setAuthenticated( true );
|
|
proceed( cycle );
|
|
}
|
|
else
|
|
{
|
|
setMessage( "Your new user entry was not submitted." );
|
|
}
|
|
}
|
|
catch (UsernameAlreadyExistsException uaee)
|
|
{
|
|
setWarning( uaee.getMessage() );
|
|
}
|
|
catch (UserEmailAlreadyExistsException ueaee)
|
|
{
|
|
setWarning( ueaee.getMessage() );
|
|
}
|
|
catch (ThdlUserRepositoryException ture)
|
|
{
|
|
setWarning( ture.getMessage() );
|
|
}
|
|
}
|
|
public Login()
|
|
{
|
|
setNewUser( false );
|
|
}
|
|
} |