'xsd:boolean', * 'resultMessage'=>'xsd:string', * 'usuario_nombre' => 'xsd:string', * 'usuario_apellidos' => 'xsd:string', * 'usuario_clave' => 'xsd:string', * 'usuario_id' => 'xsd:integer', * 'usuario_esProfesor' => 'xsd:boolean', * 'usuario_esAdministrativo' => 'xsd:boolean' */ session_start(); //require_once("../classes/Log.php"); require_once("../include/nusoap/nusoap.php"); require_once('../classes/Concurso.php'); require_once('../classes/Usuario.php'); require_once('../classes/ValidaSesion.php'); require_once("../include/bd_pdo.php"); define("SECURITY", 'P4$$w0rd.S3gura#CiDit&2020');//token de seguridad $token = SECURITY; $pag = explode('?', $_SERVER["HTTP_REFERER"]); $pag = explode('/', $pag[0]); $pag = $pag[count($pag)-1]; $errorBD = false; if (is_null($pdo)) $errorBD = true; if(!isset($_POST['username']) || !isset($_POST['passwd'])){ header('Location: ../' . $pag . '?errorIni=0'); exit; } $user = trim(filter_input(INPUT_POST, 'username'));//limpia texto $pass = $_POST['passwd']; //trim(filter_input(INPUT_POST, "passwd"));//limpia texto $externo = false; if (intval(substr($user, 2)) == 0) $externo = true; if (!$errorBD){ $_SESSION['EI_timeout'] = time(); if (!$externo){ $client = new nusoap_client('http://200.13.89.48/webservice/valida_cidit.php?wsdl', 'wsdl');//dirección del webservice if ($client->getError()) { header('Location: ../' . $pag . '?errorIni=1'); exit; }else{ $result = $client->call('valida_user', array($user, $pass));//función en el webservice. user necesita ad, do if (!$result){ header('Location: ../' . $pag . '?errorIni=1'); exit; } else { if ($result['usuario_clave'] != '12999') $userId = $result['usuario_id']; else if (isset ($_POST['idusr'])) $userId = intval($_POST['idusr']); else $userId = $result['usuario_id']; } } } else { $userId = $user; } if (obtenerDatos($pdo, $userId, $pass, $externo)){ $accesos = new ValidaSesion($pdo, 341); if ($accesos->tieneAcceso()){ if (!isset($_POST['registro'])) header('Location: ../home.php'); else header('Location: ../registro.php'); } else header('Location: ../salir.php'); exit; } else header('Location: ../' . $pag . '?errorIni=3'); } else{ header('Location: ../' . $pag . '?errorIni=1'); exit; } function obtenerDatos($pdo, $user, $pass, $externo){ if(!isset($_SESSION['EI_actual'])){ $actual = new Concurso(); $actual->getConcursoActivo($pdo); $_SESSION['EI_actual'] = serialize($actual); } $actual = unserialize($_SESSION['EI_actual']); $usr = Usuario::datosUsuario($pdo, $user, $pass, $externo); if (is_null($usr)) $situacion = false; else { if (count($usr) > 0){ $_SESSION['EI_usuario_id'] = $usr['iduser']; $_SESSION['EI_usuario_nombre'] = $usr['nombre']; $_SESSION['EI_usuario_apellidos'] = $usr['apellidos']; /*$_SESSION['EI_puesto'] = $usr['puesto']; if (isset($_POST['idusr'])) $_SESSION['EI_puesto'] .= '(Ver como)';*/ $_SESSION['EI_icono'] = $usr['icono']; $temp = Usuario::getRolesUsuario($pdo, $usr['iduser'], $actual->getId()); $_SESSION['EI_roles'] = array_column($temp, 'idrolusuario'); $situacion = true; } else $situacion = false; } return $situacion; }