package oss.ngocminh.lego.service;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import oss.ngocminh.lego.data.Entity;
import oss.ngocminh.lego.persistence.UserDAO;
import oss.ngocminh.lego.util.SessionUtils;
/**
* Servlet implementation class UserLoginController
*/
public class UserLoginController extends AbstractController {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public UserLoginController() {
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
renderView(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Errors errors = new Errors();
String email = request.getParameter("email");
String password = request.getParameter("password");
Entity user = getUser(email);
if (user == null) {
errors.put("email", "Không tìm thấy người dùng");
} else {
if (StringUtils.isEmpty(password)) {
errors.put("password", "Hãy nhập mật khẩu");
}
if (!password.equals(user.get("password"))) {
errors.put("password", "Mật khẩu không đúng");
}
}
if (errors.isEmpty()) {
SessionUtils.login(request, user);
String returnUrl = StringUtils.defaultIfEmpty(
request.getParameter("returnUrl"), "home");
redirect(returnUrl, response);
} else {
request.setAttribute("errors", errors);
renderView(request, response);
}
}
private Entity getUser(String email) throws ServletException {
try {
Connection conn = getConnection();
UserDAO userDAO = new UserDAO(conn);
Entity user = userDAO.findByEmail(email);
conn.close();
return user;
} catch (SQLException e) {
throw new ServletException(e);
}
}
}