index_action.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. session_start();
  3. require_once '../include/bd_pdo.php';//die on error
  4. require_once '../classes/SGI.php';
  5. require_once '../include/nusoap/nusoap.php';
  6. $_SESSION = array();
  7. $pag = explode('?', $_SERVER["HTTP_REFERER"]);
  8. $pag = explode('/', $pag[0]);
  9. $pag = $pag[count($pag)-1];
  10. if(!isset($_POST['username']) || !isset($_POST['passwd'])){
  11. header('Location: ../' . $pag . '?error=0');
  12. exit;
  13. } else {
  14. $user = trim(filter_input(INPUT_POST, 'username'));
  15. $pass = trim(filter_input(INPUT_POST, 'passwd'));
  16. $client = new nusoap_client('http://200.13.89.8/webservice/valida_cidit.php?wsdl', 'wsdl');//dirección del webservice
  17. if ($client->getError()) {
  18. header('Location: ../' . $pag . '?error=1');
  19. exit;
  20. } else {
  21. $result = $client->call('valida_user', array($user, $pass));//función en el webservice. user necesita ad, do, al
  22. if (!$result){
  23. header('Location: ../' . $pag . '?error=1');
  24. exit;
  25. } else {
  26. if (boolval($result['error'])){
  27. header('Location: ../' . $pag . '?error=2');
  28. exit;
  29. } else {
  30. if ($pag == 'index_bypass.php'){
  31. $esSuperAdmin = SGI::claveEsSuperAdmin($pdo, $result['usuario_clave']);
  32. if ($esSuperAdmin){
  33. if ($_POST['alumno'] != 0){
  34. $userId = intval(filter_var($_POST['alumno'], FILTER_SANITIZE_NUMBER_INT));
  35. $_SESSION['es_alumno'] = true;
  36. $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ALUMNO');
  37. if (!empty($_SESSION['RolUsuario_id']))
  38. $_SESSION['RolUsuario_desc'] = 'ALUMNO';
  39. } else {
  40. $esAlumno = SGI::buscaAlumno($pdo, 0, intval(filter_var($_POST['clave'], FILTER_SANITIZE_NUMBER_INT)));
  41. if (!is_bool($esAlumno)){
  42. $_SESSION['es_alumno'] = false;
  43. if (isset($esAlumno['Usuario_id'])) {
  44. $userId = $esAlumno['Usuario_id'];
  45. $_SESSION['es_alumno'] = true;
  46. $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ALUMNO');
  47. if (!empty($_SESSION['RolUsuario_id']))
  48. $_SESSION['RolUsuario_desc'] = 'ALUMNO';
  49. } else {
  50. header('Location: ../' . $pag . '?error=5');
  51. exit;
  52. }
  53. } else {
  54. header('Location: ../' . $pag . '?error=3');
  55. exit;
  56. }
  57. }
  58. } else {
  59. header('Location: ../' . $pag . '?error=4');
  60. exit;
  61. }
  62. } else {
  63. $esAlumno = SGI::buscaAlumno($pdo, 0, $result['usuario_clave']);
  64. if (!is_bool($esAlumno)){
  65. $_SESSION['es_alumno'] = false;
  66. if (isset($esAlumno['Usuario_id'])) {
  67. $userId = $esAlumno['Usuario_id'];
  68. $_SESSION['es_alumno'] = true;
  69. $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ALUMNO');
  70. if (!empty($_SESSION['RolUsuario_id']))
  71. $_SESSION['RolUsuario_desc'] = 'ALUMNO';
  72. } else {
  73. $_SESSION['es_alumno'] = false;
  74. header('Location: ../' . $pag . '?error=5');
  75. exit;
  76. }
  77. } else {
  78. $esAdmin = SGI::usuarioTieneAcceso($pdo, $result['usuario_id']);
  79. if($esAdmin) {
  80. $_SESSION['RolUsuario_id'] = SGI::getRol($pdo, 'ADMINISTRADOR');
  81. if (!empty($_SESSION['RolUsuario_id']))
  82. $_SESSION['RolUsuario_desc'] = 'ADMINISTRADOR';
  83. $userId = $result['usuario_id'];
  84. $_SESSION['es_alumno'] = false;
  85. } else {
  86. header('Location: ../' . $pag . '?error=3');
  87. exit;
  88. }
  89. }
  90. }
  91. if (obtenerDatos($pdo, $userId)){
  92. if ($_SESSION['es_alumno'])
  93. header('Location: ../home.php');
  94. else
  95. header('Location: ../home_admin.php');
  96. exit;
  97. } else {
  98. header('Location: ../' . $pag . '?error=5');
  99. exit;
  100. }
  101. }
  102. }
  103. }
  104. }
  105. function obtenerDatos($pdo, $id_user) {
  106. $datos = false;
  107. $_SESSION['timeout'] = time();
  108. $_SESSION['usuario_id'] = $id_user;
  109. if ($_SESSION['es_alumno']) {
  110. $nivel = SGI::nivelAlumno($pdo, $id_user);
  111. if (count($nivel) > 0){
  112. $_SESSION['estado'] = $nivel['EstadoAlumno_id'];
  113. $_SESSION['nivel'] = $nivel['Nivel_id'];
  114. $periodo = SGI::periodoValido($pdo, $nivel['Nivel_id']);
  115. if (count($periodo) > 0){
  116. $_SESSION['periodo'] = $periodo['Periodo_id'];
  117. $_SESSION['periodo_desc'] = $periodo['Periodo_desc'];
  118. $datos = true;
  119. }
  120. }
  121. } else
  122. $datos = true;
  123. return $datos;
  124. }