<?php
$correcto                 = false;
$mensaje                  = 'No se pudo validar su credencial';
$enlace                   = 'index.php';

if(!isset($_SESSION)){

    session_start();

}

if(
	isset($_POST['txt_token']) && $_POST['txt_token'] != ''
	&& isset($_POST['txt_usuario']) && $_POST['txt_usuario'] != ''
) {

	require_once($_SERVER['DOCUMENT_ROOT'].'/varios/varios.php');
	require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Varios.Class.php');
	$cadena 	= Varios::codifica('SILSCliente_recuperar__'._TOKEN);
	$tokenCod	= filter_var($_POST['txt_token'], FILTER_SANITIZE_STRING);
	$token 		= filter_var( Varios::decodifica($tokenCod), FILTER_SANITIZE_STRING);
	$valida 	= Varios::verificaToken($cadena, $token, 300);

	if (
	   true  // $valida
	) {

		// Validamos captcha
		/*
		$ch = curl_init();
		$curlConfig = array(
			CURLOPT_URL            => "https://www.google.com/recaptcha/api/siteverify",
			CURLOPT_POST           => true,
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_POSTFIELDS     => array(
				'secret'    =>  _CS2,
				'response'  =>  $_POST['g-recaptcha-response'],
				'remoteip'  =>  $_SERVER['REMOTE_ADDR']
			)
		);

		curl_setopt_array($ch, $curlConfig);
		$var1 = curl_exec($ch);

		if (!curl_errno($ch))
		*/
		if( true )
		{
		    /*
            $info 		= curl_getinfo($ch);
            $var2 		= json_decode($var1, true);
			$resultado  = $var2['success'];
			*/
			$resultado = true;
            if($resultado)
			{

				$user 	 = filter_var($_POST["txt_usuario"], FILTER_SANITIZE_STRING);
				$v_clave = Varios::generar_codigo(12);

				require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Auditoria.Class.php');
				require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Usuario.Class.php');
				$usuario_obj  = new Usuario(null);
				$usuario_informacion = $usuario_obj->recuperaClave($user, sha1($v_clave));

				if( $usuario_informacion['resultado'] == 1) {
					$nombre 			= $usuario_informacion['nombre'];
					$correo 			= $usuario_informacion['correo'];
					$mensaje            = 'Se generó una nueva contraseña para su cuenta y fue enviada al correo:<br>';
					$mensaje           .= '<b>'.Varios::transforma_correo($correo).'</b>';
					
					$auditoria_accion   = 'Update';
					$auditoria_tabla    = 'usuario';
					$auditoria_sql      = 'EXEC SP_usuario_recuperar_cuenta '.$user;
					Varios::auditInsert( $auditoria_accion, $auditoria_tabla, $auditoria_sql, 1, $mensaje );
					
					enviarCorreo( $nombre, $correo, $user, $v_clave );
					$correcto 	= true;
				} else {
					$mensaje = $usuario_informacion['mensaje'];

					$auditoria_accion   = 'Update';
					$auditoria_tabla    = 'usuario';
					$auditoria_sql      = 'ERROR: EXEC SP_usuario_recuperar_cuenta '.$user;
					Varios::auditInsert( $auditoria_accion, $auditoria_tabla, $auditoria_sql, 1, $mensaje );
				}

				$usuario_obj->Close();

			} else
				$mensaje = 'Error 504: No se pudo validar sus credenciales';

		} else
			$mensaje = 'Error 503: No se pudo validar sus credenciales';

	} else
		$mensaje = 'Error 502: No se pudo validar sus credenciales';

} else{

	$mensaje = 'Error 501: No se pudo validar sus credenciales';

	// Acceso no permitdo
	//header('location: ../sec/logout.php');

}

$data = array("success" => $correcto, "mensaje" => $mensaje, "enlace" => $enlace );
echo json_encode($data);

function enviarCorreo( $solicitanteDenominacion, $solicitanteCorreo, $usuario, $clave ) {
    global $mensaje;
    $asunto = 'Solicitud de nuevas Credenciales - '.$solicitanteDenominacion;

    require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Correo.Class.php');
    $correo_obj  = new Correo(null);
    $mail = $correo_obj->mail;                    
    $mail->Subject = $asunto;
    
    $mail->addAddress( $solicitanteCorreo, $solicitanteDenominacion );

    $mail->isHTML(true);

    $html = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/varios/correos/correoExternoRecuperarCuenta.html');
    
    $html = str_replace('{{ razonSocial }}', $solicitanteDenominacion, $html);
    $html = str_replace('{{ sistemaURL }}', _SYSTEM_URL, $html);
    
	$html = str_replace('{{ cuentaUsuario }}', $usuario, $html);
    $html = str_replace('{{ cuentaClave }}', $clave, $html);
    
    $mail->msgHTML($html, __DIR__);

    if (!$mail->send()) {
        $mensaje .= '<br>No se pudo enviar el Correo con sus nuevas credenciales';        
    }
}
?>