validausr_action2.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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. function limpiaClave($clave){
  12. return intval(str_ireplace(array("ad", "al", "do"), array("","",""), $clave));
  13. }
  14. //Valida usuario, regresa falso con error, 1 si es aceptado, 0 si es rechazado
  15. function validaUsuario($user, $pass){
  16. $client = new nusoap_client('http://200.13.89.2/validacion.php?wsdl', 'wsdl');
  17. $error = $client->getError();
  18. if ($error) {
  19. return false;
  20. }
  21. $result = $client->call("valida_user", array($user, $pass));
  22. if ($client->fault) {
  23. return false;
  24. } else {
  25. $error = $client->getError();
  26. if ($error) {
  27. return false;
  28. } else {
  29. if($result) return 1;
  30. else return 0;
  31. }
  32. }
  33. }
  34. if(!isset($_POST["username"]) || !isset($_POST["passwd"])){
  35. $return["error"] = "No se recibieron los datos";
  36. }else{
  37. $usr = trim(filter_input(INPUT_POST, "username"));//limpia texto
  38. $pass = $_POST["passwd"]; //trim(filter_input(INPUT_POST, "passwd"));//limpia texto
  39. //valida windows
  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. $usr_db = limpiaClave($usr);
  46. $stmt = $pdo->prepare('Select * from fs_validaclaveulsa_all(:usr) AS "Usuario_id"');
  47. $stmt->bindParam(":usr", $usr_db);
  48. if(!$stmt->execute()){
  49. $return["error"] = "Ocurrió un error al validar los datos";
  50. }else{
  51. $usr_rs = $stmt->fetch();//Devuelve sólo 1 resultado
  52. $stmt->closeCursor(); // cierra conexion de resultado
  53. $stmt = $pdo->prepare('Select * from fs_usuario_all(:id) as usuario inner join "ContactoEmergencia" as contacto on usuario."Usuario_id" = contacto."Usuario_id"');
  54. $stmt->bindParam(":id", $usr_rs["Usuario_id"]);
  55. if(!$stmt->execute()){
  56. $return["error"] = "No existe ese usuario en el sistema de ingeniería";
  57. }else{
  58. $rs = $stmt->fetch();
  59. $stmt->closeCursor(); // cierra conexion de resultado
  60. //Obtiene 2 corrreos
  61. $stmt = $pdo->prepare('Select * from fs_contacto(:id,3 , NULL) ORDER BY "PerfilContacto_id" LIMIT 2 OFFSET 0');//3 correo, Null todos
  62. $stmt->bindParam(":id", $usr_rs["Usuario_id"]);
  63. if(!$stmt->execute()){
  64. $return["error"] = "No existe ese usuario en el sistema de ingeniería";
  65. }else{
  66. $contacto_rs = $stmt->fetchAll();
  67. $return["id"] = $rs["Usuario_id"];
  68. $return["nombre"] = $rs["Usuario_nombre"];
  69. $return["apellidos"] = $rs["Usuario_apellidos"];
  70. $return["curp"] = $rs["Usuario_curp"];
  71. $return["emergencia_nombre"] = $rs["ContactoEmergencia_nombre"];
  72. $return["emergencia_tel"] = $rs["ContactoEmergencia_tel"];
  73. $return["correo_id1"] = "";
  74. $return["correo_id2"] = "";
  75. $return["correo1"] = "";
  76. $return["correo2"] = "";
  77. $i = 1;
  78. foreach($contacto_rs as $correo){
  79. $return["correo_id".$i] = $correo["Contacto_id"];
  80. $return["correo".$i] = $correo["Contacto_valor"];
  81. $i++;
  82. }
  83. //Si el primer correo no es institucional, es personal y se va a campo 2
  84. if( strpos($return["correo1"], "lasalle.mx") === false && strpos($return["correo1"], "lasallistas.org.mx") === false ){
  85. $tmp = $return["correo2"];
  86. $return["correo2"] = $return["correo1"];
  87. $return["correo1"] = $tmp;
  88. $tmp = $return["correo_id2"];
  89. $return["correo_id2"] = $return["correo_id1"];
  90. $return["correo_id1"] = $tmp;
  91. }
  92. }
  93. $stmt->closeCursor(); // cierra conexion de resultado
  94. $return["administrativo"] = $rs["Usuario_administrativo"];
  95. $return["tel_fijo_id"] = "";
  96. $return["tel_fijo"] = "";
  97. $return["tel_cel_id"] = "";
  98. $return["tel_cel"] = "";
  99. if($rs["Usuario_administrativo"]){
  100. //Obtiene 1 teléfono de casa
  101. $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
  102. $stmt->bindParam(":id", $rs["Usuario_id"]);
  103. if($stmt->execute()){
  104. $contacto_rs = $stmt->fetch();
  105. $return["tel_fijo_id"] = $contacto_rs["Contacto_id"];
  106. $return["tel_fijo"] = $contacto_rs["Contacto_valor"];
  107. }
  108. $stmt->closeCursor(); // cierra conexion de resultado
  109. //Obtiene 1 teléfono celular
  110. $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
  111. $stmt->bindParam(":id", $rs["Usuario_id"]);
  112. if(!$stmt->execute()){
  113. $errorMessage = "No existe ese usuario en el sistema de ingeniería";
  114. }else{
  115. $contacto_rs = $stmt->fetch();
  116. $return["tel_cel_id"] = $contacto_rs["Contacto_id"];
  117. $return["tel_cel"] = $contacto_rs["Contacto_valor"];
  118. }
  119. $stmt->closeCursor(); // cierra conexion de resultado
  120. }else{
  121. //Enviar datos a proceso de obtención datos SGU
  122. }
  123. }
  124. }
  125. $stmt->closeCursor(); // cierra conexion de resultado
  126. $stmt = null; // cierra conexion
  127. }else{//error de autenticación
  128. $return["error"] = "El usuario y/o contraseña son incorrectos";
  129. $error = true;
  130. }
  131. }
  132. //Si no entró a ninguna, no tiene permisos
  133. $return["json"] = json_encode($return);
  134. echo json_encode($return);
  135. $pdo = null;
  136. ?>