#!/bin/bash

# Cabecera CGI para indicar el tipo de contenido
#echo "Content-Type: text/plain"
#echo ""


PASS_BASE="L4V3rd4d3r4R4z0n"
RUTA_LOGS="/var/www/ddns/log/ddns_validacion_usuarios.log"
#El owner del log tiene que ser apache para que los logs se escriban!!!!

# Inicializar el log si el archivo no existe
if [ ! -f "$RUTA_LOGS" ]; then
    echo 0 > "$RUTA_LOGS"
fi

# Extraer parámetros
USUARIO=$1
TOKEN=$2


#echo $USUARIO
#echo $TOKEN

#Levantar el tiempo del token del cliente. Si el cliente/token no se encuentran, no respondo nada.

#CLIENTE_QUERY="SELECT idcliente, validtoken FROM clientes WHERE emailaddress='$USUARIO' and token='$TOKEN';"
CLIENTE_QUERY="SELECT idcliente, validtoken FROM clientes WHERE emailaddress='$USUARIO';"
CLIENTE_RESULT=$(echo "$CLIENTE_QUERY" | mysql -u ddns -p$PASS_BASE ddns -s -N)

#echo $CLIENTE_QUERY
#echo "######"
#echo $CLIENTE_RESULT
#echo "######"

if [ -z "$CLIENTE_RESULT" ]; then
    echo "$(date) - Error: El usuario $USUARIO no tiene token o el usuario es incorrecto! Saliendo sin responder nada!" >> $RUTA_LOGS
    #echo "$(date) - Error: Cliente no encontrado! Saliendo sin responder nada!"
    exit 1
fi

#Guardo el id de cliente para despues localizar sus hosts
ID_CLIENTE=$(echo $CLIENTE_RESULT | cut -d ' ' -f1)

CLIENTE_RESULT=$(echo $CLIENTE_RESULT | cut -d ' ' -f2-)

#echo "@@@@"
#echo $CLIENTE_RESULT
#echo "@@@@"


# Convertir el valor devuelto por la base de datos a timestamp
timestamp_mysql=$(date -d "$CLIENTE_RESULT" +%s)
#echo "SSSSSS"
#echo $timestamp_mysql
#echo "SSSSSS"

# Definir la fecha actual para compararla
datetime_actual=$(date "+%Y-%m-%d %H:%M:%S")
#echo $datetime_actual

timestamp_actual=$(date -d "$datetime_actual" +%s)
#echo "AAAAAA"
#echo $timestamp_actual
#echo "AAAAAA"

enviar_hosts()
{
    CLIENTE_QUERY="SELECT CONCAT(nombrehost,'.', nombredominio) FROM hosts, dominios, clientes WHERE hosts.iddominio=dominios.iddominio and hosts.idhardware='' and hosts.idcliente=clientes.idcliente and hosts.idcliente='$ID_CLIENTE' and hosts.activo=1;"
    CLIENTE_RESULT=$(echo "$CLIENTE_QUERY" | mysql -u ddns -p$PASS_BASE ddns -s -N)
    
    if [ -z "$CLIENTE_RESULT" ]; then
        echo "$(date) - Error: El usuario $USUARIO no tiene hosts asignados!" >> $RUTA_LOGS
#	echo "{\"Resultado\":1,\"Mensaje\":\"Sin hosts asignados\"}"
	echo "1 Resultado 1 Mensaje sinh"
    else    
#	echo "{\"Resultado\":0,\"hosts\":\"$CLIENTE_RESULT\"}"
#	echo "{\"Resultado\":0,\"hosts\":[\"casa.djf.latinstone.net\",\"test.host.latinstone.net\"]}"
	echo "2 Resultado 0 hosts" $CLIENTE_RESULT
#	echo 0
    fi
}


# Calcular la diferencia absoluta en segundos
diferencia=$(($timestamp_actual - $timestamp_mysql))
diferencia=${diferencia#-}  # Eliminar signo negativo para obtener valor absoluto

#echo $diferencia

# Verificar si la diferencia es menor o igual a 900 segundos (15 minutos)
if [[ $diferencia -le 900 ]]; then
    echo "$(date) - Usuario $USUARIO validado correctamente!" >> "$RUTA_LOGS"
    enviar_hosts
else
    echo "$(date) - Error: Usuario $USUARIO: token vencido!" >> "$RUTA_LOGS"
#    echo "{\"Resultado\":1,\"Mensaje\":\"Token vencido\"}"
    echo "3 Resultado 1 Mensaje Tokenv"
#    echo 1
fi
