package action.cliente;
import com.opensymphony.xwork2.ActionSupport;
import dao.UsuarioDAO;
import java.util.Date;
import java.util.Map;
import model.Cliente;
import model.Direccion;
import util.BCrypt;
import org.apache.struts2.interceptor.SessionAware;
public class RegistrarseAction extends ActionSupport implements SessionAware {
/* Formulario */
private String nombre;
private String apellidos;
private String telefono;
private String username;
private String password;
private String password2;
private String email;
private String tipo;
private String nombrecalle;
private String piso;
private String letra;
private String localidad;
private String comunidad;
private String provincia;
private String pais;
private String numero;
private String cp;
private String cuenta;
/* Session */
private Map session;
/* Acceso a Datos*/
UsuarioDAO usuarioDAO;
private String mensaje;
public RegistrarseAction() {
usuarioDAO = new UsuarioDAO();
}
public String execute() {
// Crear Usuario
if (usuarioDAO.findByEmail(email) == null) {
if (email != null && password != null && password.matches(password2)) {
Cliente cliente = new Cliente();
Direccion direccion = new Direccion();
cliente.setEmail(email);
//MD5 ...
String hashedpw = BCrypt.hashpw(password, BCrypt.gensalt(12));
cliente.setPassword(hashedpw);
cliente.setPrivilegios(0);
cliente.setNombre(nombre);
cliente.setApellido(apellidos);
cliente.setNumerodecontacto(telefono);
cliente.setUsername(username);
cliente.setRegistro(new Date());
cliente.setNumerotarjeta(getCuenta());
direccion.setTipo(tipo);
direccion.setNombre(nombrecalle);
direccion.setNumero(Integer.parseInt(getNumero()));
direccion.setCodigopostal(Integer.valueOf(cp));
direccion.setLocalidad(getLocalidad());
direccion.setProvincia(getProvincia());
direccion.setComunidad(getComunidad());
direccion.setPais(getPais());
direccion.setPiso(Integer.parseInt(piso));
direccion.setPuerta(getLetra());
cliente.setDireccion(direccion);
// Almacenarlo
usuarioDAO.save(cliente);
session = getSession();
session.put("user", cliente);
session.put("logged", true);
return "SUCCESS";
}
}
return "ERROR";
}
public String getPassword() {
return password;
}
public String getMensaje() {
return mensaje;
}
public void setMensaje(String mensaje) {
this.mensaje = mensaje;
}
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 getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getNombrecalle() {
return nombrecalle;
}
public void setNombrecalle(String nombrecalle) {
this.nombrecalle = nombrecalle;
}
public String getPiso() {
return piso;
}
public void setPiso(String piso) {
this.piso = piso;
}
public String getLetra() {
return letra;
}
public void setLetra(String letra) {
this.letra = letra;
}
/**
* @return the localidad
*/
public String getLocalidad() {
return localidad;
}
/**
* @param localidad the localidad to set
*/
public void setLocalidad(String localidad) {
this.localidad = localidad;
}
/**
* @return the comunidad
*/
public String getComunidad() {
return comunidad;
}
/**
* @param comunidad the comunidad to set
*/
public void setComunidad(String comunidad) {
this.comunidad = comunidad;
}
/**
* @return the provincia
*/
public String getProvincia() {
return provincia;
}
/**
* @param provincia the provincia to set
*/
public void setProvincia(String provincia) {
this.provincia = provincia;
}
/**
* @return the pais
*/
public String getPais() {
return pais;
}
/**
* @param pais the pais to set
*/
public void setPais(String pais) {
this.pais = pais;
}
/**
* @return the numero
*/
public String getNumero() {
return numero;
}
/**
* @param numero the numero to set
*/
public void setNumero(String numero) {
this.numero = numero;
}
public String getCp() {
return cp;
}
public void setCp(String cp) {
this.cp = cp;
}
/**
* @return the cuenta
*/
public String getCuenta() {
return cuenta;
}
/**
* @param cuenta the cuenta to set
*/
public void setCuenta(String cuenta) {
this.cuenta = cuenta;
}
}