<?php
// cms/api/users/activate.php

    header("Content-Type:application/json");
    include("../../../settings/dbconn.php");
    include("../../../settings/utils.php");
    
    // parametros obligatorios
    $parmsob = array("usr","hash");
    if (!parametrosValidos($_GET, $parmsob)){
        badEnd("400", array("msg"=>"Parametros obligatorios " . implode(", ", $parmsob)));
    }
    
    //Definicion de variables y almacenamiento de valores enviados por GET
    $out= new stdClass;
    $usr = $_GET["usr"];
    $hash = (int)$_GET["hash"];
    
    $sql = "SELECT usr, id FROM users WHERE UPPER(usr)=UPPER('".$usr."')";
    if (!$rs =$db->query($sql)){
        badEnd("500", array("msg"=>determinateDBError($db)));
    }
    
    $row = $rs->fetch_assoc();
    
    // Retornamos 204 cuando la busqueda no obtiene resutados
    if($row["usr"] == null){
        badEnd("204", array("msg"=>"No se encuentra el registro"));
    }
    
    //Obtenemos el lang del usuario
    $sql = "SELECT lang FROM users WHERE  UPPER(usr)=UPPER('".$usr."')";
     if (!$rs =$db->query($sql)){
        badEnd("500", array("msg"=>determinateDBError($db)));
    }
    
    $row = $rs->fetch_assoc();
    $lang = $row['lang'];
    
    //Validamos el tiempo del hash
    $sql = "SELECT COUNT(id) AS qty FROM users ".
    "       WHERE UPPER(usr)=UPPER('".$usr."')".
    "       AND validthru > NOW()";
    if (!$rs =$db->query($sql)){
        badEnd("500", array("msg"=>determinateDBError($db)));
    }
    
    $row = $rs->fetch_assoc();
    
    // Retornamos 401 cuando el codigo vencio
    if($row["qty"] == 0){
        badEnd("406", array("msg"=>determinateMsgFail(array(
            "esp"=>"Código expirado",
            "eng"=>"Expired code"), $lang, "Código expirado")));
    }
    
    //Colocamos null el numero de activacion y activamos el usuario colocando como status = 1
    $sql = "UPDATE users SET".
    "       status = 1, ".
    "       terms = NOW(), " .
    "       activatenro = null, ".
    "       pwdexpiration = DATE_ADD(NOW(), INTERVAL 1 YEAR)".
    "       WHERE".
    "       UPPER(usr)=UPPER('".$usr."') ".
    "       AND validthru > NOW() ".
    "       AND activatenro=".$hash;
    if (!$db->query($sql))
        badEnd("500", array("msg"=>determinateDBError($db)));
        
    if ($db->affected_rows == 0){
        badEnd("401", array("msg"=>determinateMsgFail(array(
            "esp"=>"Combinación usr/hash incorrectos",
            "eng"=>"Incorrect user/hash combination"), $lang, "Combinación usr/hash incorrectos")));
    }
    
    $out->id = strtolower($usr);
    
    header("HTTP/1.1 200");
    echo (json_encode($out));
    die();
?>

