package net.mreunion.web.pages;
import net.mreunion.web.UserSessionASO;
import net.mreunion.web.annotation.PublicPage;
import net.mreunion.web.entities.User;
import net.mreunion.web.exception.LoginException;
import net.mreunion.web.pages.statistics.GenerateChart;
import net.mreunion.web.services.LoginService;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.corelib.components.TextField;
import org.apache.tapestry5.hibernate.annotations.CommitAfter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.slf4j.Logger;
@PublicPage
public class Login {
@Inject
private Logger logger;
@Property
private String username;
@Property
private String password;
@Component(id = "username")
private TextField _username;
@Component(id="loginForm")
private Form form;
@SessionState(create=false)
private UserSessionASO userSession;
@Inject
private LoginService loginService;
void onValidateForm() {
try {
logger.info("Authenticating " + username);
User user = loginService.authenticate(username, password);
if(null != user) {
userSession = new UserSessionASO();
userSession.setUser(user);
loginService.login(user);
}
} catch (LoginException e) {
form.recordError(_username, e.getMessage());
logger.error(_username + " " + e.getMessage());
}
}
@CommitAfter
Object onSuccess() {
if (logger.isDebugEnabled()) {
logger.debug("Success " + userSession);
}
if(null == userSession) return null;
// logger.info("Access Level " + visit.getUser().getAccessLevel());
// if(AccessLevel.Admin.equals(visit.getUser().getAccessLevel())) {
// return admin;
// }
// else
// return ListContact.class;
//
// update login info
// User user = visit.getUser();
// loginService.login(user);
// if(User.AccessLevel.Admin == user.getCurrentProfile().getAccessLevel())
// return Admin.class;
// else
// return UserMenu.class;
return GenerateChart.class;
}
}
|