<?php
date_default_timezone_set('America/Mexico_City');

if(!isset($_SESSION)) 
{ 
    session_start(); 
}

//require_once 'DBA.php';
//require_once 'funciones.php';

//iniciamos la sesión 
 // es utilizada en algunos formularios donde es incluidad la clase

//CÓDIGO PARA LA SEGURIDAD USANDO SESIONES

class Security
{
	var $_idUsuario = '';
	var $_nombreUsuario = '';
	var $_tipoUsuario = ''; 
	var $_rolModulos = array(); 
	var $_isLogin = false;
        var $_idSesion = '';
	var $_tiempo_inactiva = 3600;//60 min 60X60=3600
	
	// Constructor para inicializar Valores
	function Security()
	{	
		if(!isset($_SESSION["session_login_active"]))
			$this->_isLogin = false;
		else
			$this->_isLogin = true;
		
		if(isset($_SESSION["session_login_idUsuario"]))
			$this->_idUsuario = $_SESSION["session_login_idUsuario"];
		
		if(isset($_SESSION["session_login_nombreUsuario"]))
			$this->_nombreUsuario = $_SESSION["session_login_nombreUsuario"];		
			
		if(isset($_SESSION["session_login_tipoUsuario"]))
			$this->_tipoUsuario = $_SESSION["session_login_tipoUsuario"];			
			
		if(isset($_SESSION["session_rol_modulos"]))
			$this->_rolModulos = $_SESSION["session_rol_modulos"];	
                
                if(isset($_SESSION["session_id"]))
                    $this->_idSesion = $_SESSION["session_id"];	                       	
	}	
	
	// Activa las Variables session y guarda la informacion del usuario
	function Loguearse($idUsuario, $nombreUsuario, $tipo, $modulos,$idempleado)
	{
		$_SESSION["session_login_active"] = true;
		$_SESSION["session_ultimoAcceso"] = date("Y-m-d H:i:s");
		
		$_SESSION["session_login_idUsuario"] = $idUsuario;
		$_SESSION["session_login_nombreUsuario"] = $nombreUsuario;
		$_SESSION["session_login_tipoUsuario"] = $tipo;
		$_SESSION["session_rol_modulos"] = $modulos;
		$_SESSION["session_id"] = date('YmdHis').$idUsuario;
		$_SESSION["sucursal_sistema"] =$idempleado;
		                            
		$this->_isLogin = true;
	}	
	
    // Revisa el estado de logueo y actualiza tiempo de inactividad
    function IsLogin()
	{     			
		if($this->_isLogin)
		{
			//se revisa el tiempo de inactividad
			$fechaGuardada = $_SESSION["session_ultimoAcceso"]; 
			$ahora = date("Y-m-d H:i:s"); 
			$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada)); 
			
			//comparamos el tiempo transcurrido 
			if($tiempo_transcurrido >= $this->_tiempo_inactiva) //si pasó + tiempo del indicado
			{                                                                    
                            $this->Dislogin();                            
			}
			else //sino, actualizo la fecha de la sesión 
			{ 
				$_SESSION["session_ultimoAcceso"] = $ahora; 
			} 
		}
		else{                           
                    $this->Dislogin();
                }
			
		return $this->_isLogin;
    }
	
	
    // Envio informacion del usuario Logueado
    function getData($info)
	{
		//idUsuario - nombreUsuario - idTipoUsuario - tipoUsuario ...     			
		switch($info) 
		{
			case 'idUsuario':
				$result = $this->_idUsuario;
			break;
			case 'nombreUsuario':
				$result = $this->_nombreUsuario;
			break;
			case 'tipoUsuario':
				$result = $this->_tipoUsuario;
			break;
                        case 'idSesion':
				$result = $this->_idSesion;
			break;                
			default:
				$result = '';
			break;	
		}
		return $result;
    }
	
    // Para desloguearce
    function Dislogin()
	{
        if($this->_isLogin)
		{			
			$_SESSION = array();
			session_destroy();	
			
			unset($_SESSION["session_login_active"]);
			unset($_SESSION["session_ultimoAcceso"]);
			
			unset($_SESSION["session_login_idUsuario"]);
			unset($_SESSION["session_login_nombreUsuario"]);
			unset($_SESSION["session_login_tipoUsuario"]);
			unset($_SESSION["session_rol_modulos"]);
			unset($_SESSION["session_id"]);
			unset($_SESSION["sucursal_sistema"]);
                        
            $this->_isLogin = false;
            
			return $this->_isLogin;
        }
    }
	
    // Obtengo el permiso de acceso del usuario a los módulos
    function PermisoModulo($usuarioModulo)
    {
        $usuarioPermiso=0;

        $rolModulos = array();
        $rolModulos = $this->_rolModulos;

        if( sizeof($rolModulos) > 0 )
                foreach($rolModulos as $modulo)
                        if( $usuarioModulo == $modulo["id_modulo"] )
                                $usuarioPermiso = $modulo["permiso_acceso"];

        return $usuarioPermiso;
    }          
}
?>