123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- session_start();
- require_once '../include/bd_pdo.php';//die on error
- require_once '../classes/SGI.php';
- require_once '../include/nusoap/nusoap.php';
- $_SESSION = array();
- $pag = explode('?', $_SERVER["HTTP_REFERER"]);
- $pag = explode('/', $pag[0]);
- $pag = $pag[count($pag)-1];
- if(!isset($_POST['username']) || !isset($_POST['passwd'])){
- header('Location: ../' . $pag . '?error=0');
- exit;
- } else {
- $user = trim(filter_input(INPUT_POST, 'username'));
- $pass = trim(filter_input(INPUT_POST, 'passwd'));
- $client = new nusoap_client('http://200.13.89.8/webservice/valida_cidit.php?wsdl', 'wsdl');//dirección del webservice
- if ($client->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;
- }
|