123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <?php
- /*
- * Valida usuario con la BD y devuelve contraseña para validar con PHP
- *
- * Recibe:
- * POST: usuario, password
- */
- include_once("../include/nocache.php");//continue on error
- require_once("../include/bd_pdo.php");//die on error
- require_once("../include/nusoap/nusoap.php");
- define("ACTUALIZA", true);
- function limpiaClave($clave){
- return intval(str_ireplace(array("ad", "al", "do"), array("","",""), $clave));
- }
- //Valida usuario, regresa falso con error, 1 si es aceptado, 0 si es rechazado
- function validaUsuario($user, $pass){
- $client = new nusoap_client('http://200.13.89.2/validacion.php?wsdl', 'wsdl');
- $error = $client->getError();
- if ($error) {
- return false;
- }
- $result = $client->call("valida_user", array($user, $pass));
- if ($client->fault) {
- return false;
- } else {
- $error = $client->getError();
- if ($error) {
- return false;
- } else {
- if($result) return 1;
- else return 0;
- }
- }
- }
- if(!isset($_POST["username"]) || !isset($_POST["passwd"])){
- $return["error"] = "No se recibieron los datos";
- }else{
- $usr = trim(filter_input(INPUT_POST, "username"));//limpia texto
- $pass = $_POST["passwd"]; //trim(filter_input(INPUT_POST, "passwd"));//limpia texto
- $valido = validaUsuario($usr, $pass);//false = error, 0 = sin permiso, 1 = con permiso
- if($valido === false){
- $return["error"] = "El usuario y/o contraseña son incorrectos";
- }else if($valido == 1){//valido
- //busca en DB
- if ( ACTUALIZA && strtolower(substr($usr, 0, 2)) == "al")
- {
- $url = "http://ateneapruebas.lci.ulsa.mx/calificaciones";
- $data = array(
- 'clave' => $usr,
- 'contraseña' => $pass,
- );
- $curl = curl_init($url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($curl, CURLOPT_POST, true);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
- $response = curl_exec($curl);
-
- if($response === false) {
- echo curl_error($curl);
- }
- curl_close($curl);
- }
-
- $usr_db = limpiaClave($usr);
- $stmt = $pdo->prepare('Select * from fs_validaclaveulsa_all(:usr) AS "Usuario_id"');
- $stmt->bindParam(":usr", $usr_db);
- if(!$stmt->execute()){
- $return["error"] = "Ocurrió un error al validar los datos";
- }else{
- $usr_rs = $stmt->fetch();//Devuelve sólo 1 resultado
- $stmt->closeCursor(); // cierra conexion de resultado
- $stmt = $pdo->prepare('Select * from fs_usuario_all(:id)');
- $stmt->bindParam(":id", $usr_rs["Usuario_id"]);
- if(!$stmt->execute()){
- $return["error"] = "No existe ese usuario en el sistema de ingeniería";
- }else{
- $rs = $stmt->fetch();
- $stmt->closeCursor(); // cierra conexion de resultado
-
- //Obtiene 2 corrreos
- $stmt = $pdo->prepare('Select * from fs_contacto(:id,3 , NULL) ORDER BY "PerfilContacto_id" LIMIT 2 OFFSET 0');//3 correo, Null todos
- $stmt->bindParam(":id", $usr_rs["Usuario_id"]);
- if(!$stmt->execute()){
- $return["error"] = "No existe ese usuario en el sistema de ingeniería";
- }else{
- $contacto_rs = $stmt->fetchAll();
- $return["id"] = $rs["Usuario_id"];
- $return["nombre"] = $rs["Usuario_nombre"];
- $return["apellidos"] = $rs["Usuario_apellidos"];
- $return["curp"] = $rs["Usuario_curp"];
- $return["correo_id1"] = "";
- $return["correo_id2"] = "";
- $return["correo1"] = "";
- $return["correo2"] = "";
- $i = 1;
- foreach($contacto_rs as $correo){
- $return["correo_id".$i] = $correo["Contacto_id"];
- $return["correo".$i] = $correo["Contacto_valor"];
- $i++;
- }
- //Si el primer correo no es institucional, es personal y se va a campo 2
- if( strpos($return["correo1"], "lasalle.mx") === false && strpos($return["correo1"], "lasallistas.org.mx") === false ){
- $tmp = $return["correo2"];
- $return["correo2"] = $return["correo1"];
- $return["correo1"] = $tmp;
- $tmp = $return["correo_id2"];
- $return["correo_id2"] = $return["correo_id1"];
- $return["correo_id1"] = $tmp;
- }
- }
- $stmt->closeCursor(); // cierra conexion de resultado
- $return["administrativo"] = $rs["Usuario_administrativo"];
- $return["tel_fijo_id"] = "";
- $return["tel_fijo"] = "";
- $return["tel_cel_id"] = "";
- $return["tel_cel"] = "";
- if($rs["Usuario_administrativo"]){
- //Obtiene 1 teléfono de casa
- $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
- $stmt->bindParam(":id", $rs["Usuario_id"]);
- if($stmt->execute()){
- $contacto_rs = $stmt->fetch();
-
- $return["tel_fijo_id"] = $contacto_rs["Contacto_id"];
- $return["tel_fijo"] = $contacto_rs["Contacto_valor"];
- }
- $stmt->closeCursor(); // cierra conexion de resultado
- //Obtiene 1 teléfono celular
- $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
- $stmt->bindParam(":id", $rs["Usuario_id"]);
- if(!$stmt->execute()){
- $errorMessage = "No existe ese usuario en el sistema de ingeniería";
- }else{
- $contacto_rs = $stmt->fetch();
-
- $return["tel_cel_id"] = $contacto_rs["Contacto_id"];
- $return["tel_cel"] = $contacto_rs["Contacto_valor"];
- }
- $stmt->closeCursor(); // cierra conexion de resultado
- }
- }
- }
- $stmt->closeCursor(); // cierra conexion de resultado
- $stmt = null; // cierra conexion
- }else{//error de autenticación
- $return["error"] = "El usuario y/o contraseña son incorrectos";
- $error = true;
- }
- }
- //Si no entró a ninguna, no tiene permisos
- $return["json"] = json_encode($return);
- echo json_encode($return);
- $pdo = null;
- ?>
|