getError()) { header('Location: ../' . $pag . '?error=1'); exit; } else { $result = $client->call('valida_user', array($user, $pass));//función en el webservice. user necesita ad, do, al if (!$result){ header('Location: ../' . $pag . '?error=1'); exit; } else { if (boolval($result['error'])){ header('Location: ../' . $pag . '?error=2'); exit; } else { if ($pag == 'index_bypass.php'){ $esSuperAdmin = SGI::claveEsSuperAdmin($pdo, $result['usuario_clave']); if ($esSuperAdmin){ if ($_POST['alumno'] != 0){ $userId = intval(filter_var($_POST['alumno'], FILTER_SANITIZE_NUMBER_INT)); $_SESSION['es_alumno'] = true; $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ALUMNO'); if (!empty($_SESSION['RolUsuario_id'])) $_SESSION['RolUsuario_desc'] = 'ALUMNO'; } else { $esAlumno = SGI::buscaAlumno($pdo, 0, intval(filter_var($_POST['clave'], FILTER_SANITIZE_NUMBER_INT))); if (!is_bool($esAlumno)){ $_SESSION['es_alumno'] = false; if (isset($esAlumno['Usuario_id'])) { $userId = $esAlumno['Usuario_id']; $_SESSION['es_alumno'] = true; $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ALUMNO'); if (!empty($_SESSION['RolUsuario_id'])) $_SESSION['RolUsuario_desc'] = 'ALUMNO'; } else { header('Location: ../' . $pag . '?error=5'); exit; } } else { header('Location: ../' . $pag . '?error=3'); exit; } } } else { header('Location: ../' . $pag . '?error=4'); exit; } } else { $esAlumno = SGI::buscaAlumno($pdo, 0, $result['usuario_clave']); if (!is_bool($esAlumno)){ $_SESSION['es_alumno'] = false; if (isset($esAlumno['Usuario_id'])) { $userId = $esAlumno['Usuario_id']; $_SESSION['es_alumno'] = true; $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ALUMNO'); if (!empty($_SESSION['RolUsuario_id'])) $_SESSION['RolUsuario_desc'] = 'ALUMNO'; } else { $_SESSION['es_alumno'] = false; header('Location: ../' . $pag . '?error=5'); exit; } } else { $esAdmin = SGI::usuarioTieneAcceso($pdo, $result['usuario_id']); if($esAdmin) { $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ADMINISTRADOR'); if (!empty($_SESSION['RolUsuario_id'])) $_SESSION['RolUsuario_desc'] = 'ADMINISTRADOR'; $userId = $result['usuario_id']; $_SESSION['es_alumno'] = false; } else { header('Location: ../' . $pag . '?error=3'); exit; } } } if (obtenerDatos($pdo, $userId)){ if ($_SESSION['es_alumno']) header('Location: ../home.php'); else header('Location: ../home_admin.php'); exit; } else { header('Location: ../' . $pag . '?error=5'); exit; } } } } } function obtenerDatos($pdo, $id_user) { $datos = false; $_SESSION['timeout'] = time(); $_SESSION['usuario_id'] = $id_user; if ($_SESSION['es_alumno']) { $nivel = SGI::nivelAlumno($pdo, $id_user); if (count($nivel) > 0){ $_SESSION['estado'] = $nivel['EstadoAlumno_id']; $_SESSION['nivel'] = $nivel['Nivel_id']; $periodo = SGI::periodoValido($pdo, $nivel['Nivel_id']); if (count($periodo) > 0){ $_SESSION['periodo'] = $periodo['Periodo_id']; $_SESSION['periodo_desc'] = $periodo['Periodo_desc']; $datos = true; } } } else $datos = true; return $datos; }