validausr_action.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. /*
  3. * Valida usuario con la BD y devuelve contraseña para validar con PHP
  4. *
  5. * Recibe:
  6. * POST: usuario, password
  7. */
  8. include_once("../include/nocache.php");//continue on error
  9. require_once("../include/bd_pdo.php");//die on error
  10. require_once("../include/nusoap/nusoap.php");
  11. define("ACTUALIZA", true);
  12. function limpiaClave($clave){
  13. return intval(str_ireplace(array("ad", "al", "do"), array("","",""), $clave));
  14. }
  15. //Valida usuario, regresa falso con error, 1 si es aceptado, 0 si es rechazado
  16. function validaUsuario($user, $pass){
  17. $client = new nusoap_client('http://200.13.89.2/validacion.php?wsdl', 'wsdl');
  18. $error = $client->getError();
  19. if ($error) {
  20. return false;
  21. }
  22. $result = $client->call("valida_user", array($user, $pass));
  23. if ($client->fault) {
  24. return false;
  25. } else {
  26. $error = $client->getError();
  27. if ($error) {
  28. return false;
  29. } else {
  30. if($result) return 1;
  31. else return 0;
  32. }
  33. }
  34. }
  35. if(!isset($_POST["username"]) || !isset($_POST["passwd"])){
  36. $return["error"] = "No se recibieron los datos";
  37. }else{
  38. $usr = trim(filter_input(INPUT_POST, "username"));//limpia texto
  39. $pass = $_POST["passwd"]; //trim(filter_input(INPUT_POST, "passwd"));//limpia texto
  40. $valido = validaUsuario($usr, $pass);//false = error, 0 = sin permiso, 1 = con permiso
  41. if($valido === false){
  42. $return["error"] = "El usuario y/o contraseña son incorrectos";
  43. }else if($valido == 1){//valido
  44. //busca en DB
  45. if ( ACTUALIZA && strtolower(substr($usr, 0, 2)) == "al")
  46. {
  47. $url = "http://ateneapruebas.lci.ulsa.mx/calificaciones";
  48. $data = array(
  49. 'clave' => $usr,
  50. 'contraseña' => $pass,
  51. );
  52. $curl = curl_init($url);
  53. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  54. curl_setopt($curl, CURLOPT_POST, true);
  55. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  56. $response = curl_exec($curl);
  57. if($response === false) {
  58. echo curl_error($curl);
  59. }
  60. curl_close($curl);
  61. }
  62. $usr_db = limpiaClave($usr);
  63. $stmt = $pdo->prepare('Select * from fs_validaclaveulsa_all(:usr) AS "Usuario_id"');
  64. $stmt->bindParam(":usr", $usr_db);
  65. if(!$stmt->execute()){
  66. $return["error"] = "Ocurrió un error al validar los datos";
  67. }else{
  68. $usr_rs = $stmt->fetch();//Devuelve sólo 1 resultado
  69. $stmt->closeCursor(); // cierra conexion de resultado
  70. $stmt = $pdo->prepare('Select * from fs_usuario_all(:id)');
  71. $stmt->bindParam(":id", $usr_rs["Usuario_id"]);
  72. if(!$stmt->execute()){
  73. $return["error"] = "No existe ese usuario en el sistema de ingeniería";
  74. }else{
  75. $rs = $stmt->fetch();
  76. $stmt->closeCursor(); // cierra conexion de resultado
  77. //Obtiene 2 corrreos
  78. $stmt = $pdo->prepare('Select * from fs_contacto(:id,3 , NULL) ORDER BY "PerfilContacto_id" LIMIT 2 OFFSET 0');//3 correo, Null todos
  79. $stmt->bindParam(":id", $usr_rs["Usuario_id"]);
  80. if(!$stmt->execute()){
  81. $return["error"] = "No existe ese usuario en el sistema de ingeniería";
  82. }else{
  83. $contacto_rs = $stmt->fetchAll();
  84. $return["id"] = $rs["Usuario_id"];
  85. $return["nombre"] = $rs["Usuario_nombre"];
  86. $return["apellidos"] = $rs["Usuario_apellidos"];
  87. $return["curp"] = $rs["Usuario_curp"];
  88. $return["correo_id1"] = "";
  89. $return["correo_id2"] = "";
  90. $return["correo1"] = "";
  91. $return["correo2"] = "";
  92. $i = 1;
  93. foreach($contacto_rs as $correo){
  94. $return["correo_id".$i] = $correo["Contacto_id"];
  95. $return["correo".$i] = $correo["Contacto_valor"];
  96. $i++;
  97. }
  98. //Si el primer correo no es institucional, es personal y se va a campo 2
  99. if( strpos($return["correo1"], "lasalle.mx") === false && strpos($return["correo1"], "lasallistas.org.mx") === false ){
  100. $tmp = $return["correo2"];
  101. $return["correo2"] = $return["correo1"];
  102. $return["correo1"] = $tmp;
  103. $tmp = $return["correo_id2"];
  104. $return["correo_id2"] = $return["correo_id1"];
  105. $return["correo_id1"] = $tmp;
  106. }
  107. }
  108. $stmt->closeCursor(); // cierra conexion de resultado
  109. $return["administrativo"] = $rs["Usuario_administrativo"];
  110. $return["tel_fijo_id"] = "";
  111. $return["tel_fijo"] = "";
  112. $return["tel_cel_id"] = "";
  113. $return["tel_cel"] = "";
  114. if($rs["Usuario_administrativo"]){
  115. //Obtiene 1 teléfono de casa
  116. $stmt = $pdo->prepare('SELECT * from fs_contacto(:id, 1 , NULL) WHERE "SubtipoContacto_id" = 1 ORDER BY "PerfilContacto_id" LIMIT 1 OFFSET 0');//3 correo, Null todos
  117. $stmt->bindParam(":id", $rs["Usuario_id"]);
  118. if($stmt->execute()){
  119. $contacto_rs = $stmt->fetch();
  120. $return["tel_fijo_id"] = $contacto_rs["Contacto_id"];
  121. $return["tel_fijo"] = $contacto_rs["Contacto_valor"];
  122. }
  123. $stmt->closeCursor(); // cierra conexion de resultado
  124. //Obtiene 1 teléfono celular
  125. $stmt = $pdo->prepare('SELECT * from fs_contacto(:id, 1 , NULL) WHERE "SubtipoContacto_id" = 2 ORDER BY "PerfilContacto_id" LIMIT 1 OFFSET 0');//3 correo, Null todos
  126. $stmt->bindParam(":id", $rs["Usuario_id"]);
  127. if(!$stmt->execute()){
  128. $errorMessage = "No existe ese usuario en el sistema de ingeniería";
  129. }else{
  130. $contacto_rs = $stmt->fetch();
  131. $return["tel_cel_id"] = $contacto_rs["Contacto_id"];
  132. $return["tel_cel"] = $contacto_rs["Contacto_valor"];
  133. }
  134. $stmt->closeCursor(); // cierra conexion de resultado
  135. }
  136. }
  137. }
  138. $stmt->closeCursor(); // cierra conexion de resultado
  139. $stmt = null; // cierra conexion
  140. }else{//error de autenticación
  141. $return["error"] = "El usuario y/o contraseña son incorrectos";
  142. $error = true;
  143. }
  144. }
  145. //Si no entró a ninguna, no tiene permisos
  146. $return["json"] = json_encode($return);
  147. echo json_encode($return);
  148. $pdo = null;
  149. ?>