package api;
import org.orm.PersistentException;
import org.orm.PersistentTransaction;
public class AuthUserBackend {
int timeSumaExpired = 30;
/**
*
* @param token
* @return
* @throws PersistentException
*/
public boolean validateToken(String token) throws PersistentException{
boolean respuesta = false;
if(token!=null && token.replace(" ","")!="" ){
java.util.Date now = new java.util.Date();
Long longTime = new Long(now.getTime()/1000);
/*
* verificar si tiene un token valido
*/
String search = " sb_token='"+token+"' AND " +
" sb_datecreated <= '"+longTime+"' AND "+
" sb_dateexpired >= '"+longTime+"' ";
orm.Tau_sessionuserbackend lormTau_sessionuserbackend = orm.Tau_sessionuserbackendDAO.loadTau_sessionuserbackendByQuery(search, null);
if(lormTau_sessionuserbackend!=null){
respuesta = true;
}
else {
/*
* Sino tiene un token validado crear el token
*/
respuesta = false;
}
}
return respuesta;
}
/**
*
* @param datecreated
* @param dateexpired
* @param lormTau_userbackend
* @return
* @throws PersistentException
*/
private String addToken(Long datecreated, Long dateexpired, orm.Tau_userbackend lormTau_userbackend) throws PersistentException{
String respuesta = "";
String token = lormTau_userbackend.getUb_user() + "_" +datecreated+"_"+dateexpired;
PersistentTransaction t = orm.AuthPersistentManager.instance().getSession().beginTransaction();
try {
orm.Tau_sessionuserbackend lormTau_sessionuserbackend = orm.Tau_sessionuserbackendDAO.createTau_sessionuserbackend();
lormTau_sessionuserbackend.setSb_ub(lormTau_userbackend);
lormTau_sessionuserbackend.setSb_datecreated(datecreated);
lormTau_sessionuserbackend.setSb_dateexpired(dateexpired);
lormTau_sessionuserbackend.setSb_token(token);
orm.Tau_sessionuserbackendDAO.save(lormTau_sessionuserbackend);
t.commit();
respuesta = token;
}
catch (Exception e) {
t.rollback();
}
return respuesta;
}
/**
*
* @param user
* @param password
* @return
*/
public String authBackend(String user, String password){
String respuesta = "";
/*
* Validar parametros
*/
if(user!=null && user.replace(" ","")!="" && password!=null && password.replace(" ","")!="" ){
/*
* Verificar si existe user y pass
*/
orm.Tau_userbackend lormTau_userbackend;
try {
lormTau_userbackend = orm.Tau_userbackendDAO.loadTau_userbackendByQuery(" ub_user='"+user+"' AND ub_password='"+password+"'", null);
if(lormTau_userbackend!=null){
java.util.Date now = new java.util.Date();
Long longTime = new Long(now.getTime()/1000);
/*
* verificar si tiene un token valido
*/
String search = " sb_ub.ub_user='"+user+"' AND " +
" sb_datecreated <= '"+longTime+"' AND "+
" sb_dateexpired >= '"+longTime+"' ";
orm.Tau_sessionuserbackend lormTau_sessionuserbackend = orm.Tau_sessionuserbackendDAO.loadTau_sessionuserbackendByQuery(search, null);
if(lormTau_sessionuserbackend!=null){
respuesta = lormTau_sessionuserbackend.getSb_token();
}
else {
/*
* Sino tiene un token validado crear el token
*/
respuesta = ""+this.addToken(longTime, longTime+timeSumaExpired, lormTau_userbackend);
}
}
else {
respuesta = "-2";
}
} catch (PersistentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
respuesta = "-3";
}
}
else {
respuesta = "-4";
}
return respuesta;
}
/**
*
* @param user
* @param password
* @return
*/
public int addUser(String user, String password){
int respuesta = 0;
if(user!=null && user.replace(" ","")!="" && password!=null && password.replace(" ","")!="" ){
PersistentTransaction t;
try {
/*
* If exits username
*/
orm.Tau_userbackend lormTau_userbackend = orm.Tau_userbackendDAO.loadTau_userbackendByQuery(" ub_user='"+user+"'", null);
if(lormTau_userbackend==null){
/*
* Save
*/
t = orm.AuthPersistentManager.instance().getSession().beginTransaction();
try {
orm.Tau_userbackend lormTau_userbackendCreate = orm.Tau_userbackendDAO.createTau_userbackend();
lormTau_userbackendCreate.setUb_password(password);
lormTau_userbackendCreate.setUb_user(user);
// TODO Initialize the properties of the persistent object here, the following properties must be initialized before saving : tau_sessionuserfrontend, uf_password, uf_user
orm.Tau_userbackendDAO.save(lormTau_userbackendCreate);
t.commit();
lormTau_userbackendCreate = null;
respuesta = 1;
}
catch (Exception e) {
t.rollback();
/*
* Error al guardar
*/
respuesta = -1;
}
}
else {
/*
* Exit object
*/
respuesta = -2;
}
lormTau_userbackend = null;
} catch (PersistentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
/*
* Error de transacion
*/
respuesta = -3;
}
t = null;
}
else {
/*
* Error parametros
*/
respuesta = -4;
}
return respuesta;
}
}