<?php
if(!isset($_SESSION)){
	session_start();
}

$correcto                 = false;
$mensaje                  = 'Credenciales no válidas';
$enlace                   = 'index.php';

if(
	isset($_POST["auth_token"]) && $_POST["auth_token"] != ""
	&& isset($_POST["txt_usuario"]) && $_POST["txt_usuario"] != ""
	&& isset($_POST["txt_clave"]) && $_POST["txt_clave"] != ""
) {
	require_once($_SERVER['DOCUMENT_ROOT'].'/varios/varios.php');
	require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Varios.Class.php');
	
	$cadena     = Varios::codifica('agendamientoAdmLogin'._TOKEN);
	$tokenCod 	= filter_var($_POST["auth_token"], FILTER_SANITIZE_STRING);
	$token 		= filter_var( Varios::decodifica($tokenCod), FILTER_SANITIZE_STRING);
	$valida 	= Varios::verificaToken($cadena, $token, 300);
	
	// if ( $valida ) {
	if ( true ) {
		/*
		$ch = curl_init();
		$curlConfig = array(
			CURLOPT_URL            => "https://www.google.com/recaptcha/api/siteverify",
			CURLOPT_POST           => true,
			CURLOPT_RETURNTRANSFER => true,
			// CURLOPT_PROXYPORT      => 3128,
			// CURLOPT_PROXY          => 'proxy.intranet.gov.cl',
			CURLOPT_POSTFIELDS     => array(
				'secret'    =>  _CS2,
				'response'  =>  $_POST['g-recaptcha-response'],
				'remoteip'  =>  $_SERVER['REMOTE_ADDR']
			)
		);

		curl_setopt_array($ch, $curlConfig);
		$var1 	   = curl_exec($ch);
		$var2 	   = json_decode($var1, true);
		$resultado = $var2['success'];
        */
		$resultado = 1;
		if($resultado == 1) {
			$user = filter_var($_POST["txt_usuario"], FILTER_SANITIZE_STRING);
			$pass = filter_var($_POST["txt_clave"], FILTER_SANITIZE_STRING);

			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->verificaClave($user, sha1($pass));

			// if(strlen($usuario_informacion) == 0 || strlen($usuario_informacion[0]) == 0) {
			if( ! $usuario_informacion ) {
				$mensaje            = 'Las credenciales ingresadas no son validas';				
                $auditoria_accion   = 'Select';
                $auditoria_tabla    = 'usuario';
                $auditoria_sql      = 'EXEC SP_usuario_verifica_clave '.$user.'';
                Varios::auditInsert( $auditoria_accion, $auditoria_tabla, $auditoria_sql, 0, $mensaje.': '.$user );
			} else {
                $mensaje            = 'Las credenciales ingresadas validas';				
                $auditoria_accion   = 'Select';
                $auditoria_tabla    = 'usuario';
                $auditoria_sql      = 'EXEC SP_usuario_verifica_clave '.$user;
                Varios::auditInsert( $auditoria_accion, $auditoria_tabla, $auditoria_sql, 1, $mensaje );

				// Asignamos las variables de sesión
				$us_UID         = $usuario_informacion['usua_UID'];
				$user_nombre    = $usuario_informacion['func_nombre_completo'];
                $us_username    = $usuario_informacion['usua_nombreusuario'];
				$user_email     = $usuario_informacion['func_email'];
				$user_idperfil  = $usuario_informacion['usua_rol_UID'];
				$user_perfil    = $usuario_informacion['usua_rol'];

				require_once($_SERVER['DOCUMENT_ROOT'].'/varios/varios.php');

				$_SESSION[_SYSTEM_SESIONID.'userId']	        = Varios::codifica($us_UID);
				$_SESSION[_SYSTEM_SESIONID.'username']			= $us_username;
				$_SESSION[_SYSTEM_SESIONID.'nombreCompleto']	= $user_nombre;
				$_SESSION[_SYSTEM_SESIONID.'email']	        	= $user_email;
				$_SESSION[_SYSTEM_SESIONID.'perfilId']        	= $user_idperfil;
				$_SESSION[_SYSTEM_SESIONID.'perfil']       		= $user_perfil;
				$_SESSION[_SYSTEM_SESIONID.'auditoriaId']     	= $us_UID.' - '.$us_username;

				permisosAsignar( $us_username, $user_idperfil);

				$enlace     	= '/paginas/principal/index.php';

				$correcto 	= true;
				$mensaje 	= 'Bienvenido '.$user_nombre;
			}

			$usuario_obj->Close();

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

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

} else{

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

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

}

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

function permisosAsignar( $p_username, $p_perfilId ) {
    // Asigna permisos de acceso a la cuenta
    $usuario_obj  = new Usuario(null);
    $permisos_inf = $usuario_obj->muestraUsuario_Modulos( $p_perfilId, 1);
    $_SESSION['glopermisos'] = array();

    foreach ($permisos_inf as $permiso) {
        // Detalle de permisos del perfil
        $v_modulo_ID = $permiso['mod_UID'];
        $v_accion_ID = $permiso['acc_UID'];
        $_SESSION[_SYSTEM_SESIONID.'glopermisos'][$v_modulo_ID][$v_accion_ID][] = 1;
    }

    $auditoria_accion   = "Select";
    $auditoria_tabla    = "perfil_has_modulo";
    $auditoria_sql      = "EXEC SP_usuario_entrega_modulo". $p_perfilId;
    Varios::auditInsert( $auditoria_accion, $auditoria_tabla, $auditoria_sql, 1, 'Permisos Asignados: '.$p_username );
}
?>