package action.cliente;
import com.opensymphony.xwork2.ActionSupport;
import dao.UsuarioDAO;
import java.util.Map;
import model.Usuario;
import util.BCrypt;
import org.apache.struts2.interceptor.SessionAware;
public class LoginAction extends ActionSupport implements SessionAware {
/* Form */
private String email;
private String password;
/* Session */
private Map session;
/* Error */
private String error = null;
/* Acceso a datos */
UsuarioDAO usuarioDAO;
public LoginAction() {
usuarioDAO = new UsuarioDAO();
}
public String execute() {
session = getSession();
Usuario user = usuarioDAO.findByEmail(email);
if (user == null) {
user = usuarioDAO.findUsername(email);
}
if (user != null) {
boolean validate = BCrypt.checkpw(password, user.getPassword());
//if (user.getPassword().matches(StringMD.getStringMessageDigest(password, StringMD.MD5))) {
if (validate) {
if (user.isBaneado()) {
error = "Este usuario ha sido baneado";
return "ERROR";
}
session.put("user", user);
session.put("logged", true);
if (user.getPrivilegios() > 0) {
return "LOGIN";
}
return "SUCCESS";
} else {
error = "ContraseƱa Incorrecta";
}
} else {
error = "Usuario no existente";
}
return "ERROR";
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public void setSession(Map session) {
this.session = session;
}
public Map getSession() {
return session;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
}