Mister Spy Say ="Hello Kids ... :D" ___ ____ _ _____ | \/ (_) | | / ___| | . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _ | |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | | | | | | \__ \ || __/ | /\__/ / |_) | |_| | \_| |_/_|___/\__\___|_| \____/| .__/ \__, | | | __/ | |_| |___/ Bot Mister Spy V3
Mister Spy

Mister Spy

Current Path : /home/caballoscriollos/public_html/web/library/
Upload File :
Current File : /home/caballoscriollos/public_html/web/library/class.usuario.php

<?php

require_once('class.db.php');
require_once('class.dbaccess.php');
require_once('class.usuariogrupos.php');
require_once('class.datosempresa.php');
require_once('class.configuraciones.php');
require_once('class.tokengenerator.php');
require_once('class.sexos.php');
require_once('class.gmail.php');

class Usuario
{
	public $IdUsuario;
	public $IdTipoLista;
	public $Nombre;
	public $Apellido;
	public $CodigoAreaTelefono;
	public $Telefono;
	public $CodigoAreaFax;
	public $Fax;
	public $TelefonoEmergencia;
	public $IdSexo;
	public $Sexo;
	public $FechaNacimiento;
	public $Dni;
	public $Email;
	public $DomicilioCalle;
	public $DomicilioNumero;
	public $DomicilioPiso;
	public $DomicilioDpto;
	public $IdPais;
	public $IdProvincia;	
	public $IdLocalidad;
	public $CodigoPostal;
	public $Empresa;
	public $CuitCuil;	
	public $Usuario;
	public $Contrasenia;
	public $Newsletter;
	public $IdEstado;
	public $IdTipoUsuario;
	public $Grupos;
	public $Token;
	public $AccessToken;


	public function __construct()
	{
		$this->IdUsuario 			= '';
		$this->IdTipoLista 			= '';
		$this->Nombre 				= '';
		$this->Apellido 			= '';
		$this->CodigoAreaTelefono 	= '';
		$this->Telefono 			= '';
		$this->CodigoAreaFax		= '';
		$this->Fax 					= '';
		$this->TelefonoEmergencia	= '';
		$this->IdSexo               = '';
		$this->FechaNacimiento      = '';
		$this->Dni 					= '';
		$this->Email 				= '';
		$this->DomicilioCalle 		= '';
		$this->DomicilioNumero 		= '';
		$this->DomicilioPiso 		= '';
		$this->DomicilioDpto 		= '';
		$this->IdPais 				= '';
		$this->IdProvincia 			= '';
		$this->IdLocalidad 			= '';
		$this->CodigoPostal 		= '';
		$this->Empresa 				= '';
		$this->CuitCuil 			= '';
		$this->Usuario				= '';
		$this->Contrasenia 			= '';
		$this->Newsletter 			= '';
		$this->IdEstado 			= '';
		$this->IdTipoUsuario		= '';
		$this->Token				= '';
		$this->AccessToken			= '';
		
		$this->Grupos = array();
	}
	
	
	public function ParseFromArray(array $arr)
	{
		$this->IdUsuario 			= $arr['IdUsuario'];
		$this->IdTipoLista 			= $arr['IdTipoLista'];
		$this->Nombre 				= stripslashes($arr['Nombre']);
		$this->Apellido 			= stripslashes($arr['Apellido']);
		$this->CodigoAreaTelefono 	= stripslashes($arr['CodigoAreaTelefono']);
		$this->Telefono 			= stripslashes($arr['Telefono']);
		$this->CodigoAreaFax		= stripslashes($arr['CodigoAreaFax']);
		$this->Fax 					= stripslashes($arr['Fax']);
		$this->TelefonoEmergencia	= stripslashes($arr['TelefonoEmergencia']);
		$this->IdSexo               = $arr['IdSexo'];
		$this->FechaNacimiento      = stripslashes($arr['FechaNacimiento']);
		$this->Dni 					= stripslashes($arr['DNI']);
		$this->Email 				= stripslashes($arr['Email']);
		$this->DomicilioCalle 		= stripslashes($arr['DomicilioCalle']);
		$this->DomicilioNumero 		= stripslashes($arr['DomicilioNumero']);
		$this->DomicilioPiso 		= stripslashes($arr['DomicilioPiso']);
		$this->DomicilioDpto 		= stripslashes($arr['DomicilioDpto']);
		$this->IdPais 				= $arr['IdPais'];
		$this->IdProvincia 			= $arr['IdProvincia'];
		$this->IdLocalidad 			= $arr['IdLocalidad'];
		$this->CodigoPostal 		= stripslashes($arr['CodigoPostal']);
		$this->Empresa 				= stripslashes($arr['Empresa']);
		$this->CuitCuil 			= stripslashes($arr['CuitCuil']);
		$this->Usuario				= stripslashes($arr['Usuario']);
		$this->Contrasenia 			= stripslashes($arr['Contrasenia']);
		$this->Newsletter 			= $arr['Newsletter'];
		$this->IdEstado 			= $arr['IdEstado'];
		$this->IdTipoUsuario		= $arr['IdTipoUsuario'];
		
		if (!empty($this->IdSexo))
		{
			$this->Sexo	= Sexos::GetById($this->IdSexo);
		}
	}
	
	
	public function GetUsuario()
	{
		if (($this->Apellido != '') && ($this->Nombre != ''))
			return  $this->Nombre . ' ' . $this->Apellido;
		elseif (($this->Apellido != ''))
			return $this->Apellido;
		else
			return $this->Nombre;
	}
	
	
	public function GetDomicilio()
	{
		$Domicilio = '';

		$Domicilio.= $this->DomicilioCalle . ' ' . $this->DomicilioNumero;
		
		if (($this->DomicilioPiso != '') || ($this->DomicilioDpto != ''))
			$Domicilio.= ' || ';
		if (($this->DomicilioPiso != ''))
			$Domicilio.= ' Piso: ' . $this->DomicilioPiso;
		if (($this->DomicilioDpto != ''))
			$Domicilio.= ' Dpto: ' . $this->DomicilioDpto;
			
		return $Domicilio;
	}
		
	
	public function SendMailRegistro()
	{
		/* obtenemos informacion de configuracion del sitio */
		$oConfiguraciones = new Configuraciones();
		$oConfiguracion = $oConfiguraciones->GetRow();

		/* armamos el codigo de activacion */
		$Code = md5($this->Nombre . $this->Apellido . $this->Email);
		
		$Headers.= "MIME-Version: 1.0" . "\r\n";
		$Headers.= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; 
		$Headers.= "X-Mailer: php" . "\r\n";
		$Headers.= 'To: ' . $this->Nombre . ' ' . $this->Apellido . '<' . $this->Email . '>' . "\r\n";
		$Headers.= "From: " . $oDatosEmpresa->RazonSocial . "\r\n";
		$Headers.= " <" . $oConfiguracion->EmailNoReply . ">" . "\r\n";

		/* dependiendo del tipo de registro... */
		if ($this->IdTipoLista == ListaTipos::Minorista)
		{
			$Content = '';
			$Content.= 'Estimado ' . $this->Nombre . ' ' . $this->Apellido . ',<br>';
			$Content.= 'Su registro ha sido procesado, por favor haga clic en el siguiente enlace para validar su cuenta.<br>';
			$Content.= '<a href="' . Config::UrlSitioEspanol . 'registro/' . $Code .'">' . Config::UrlSitioEspanol . 'registro/' . $Code . '</a><br><br>';
		}
		elseif ($this->IdTipoLista == ListaTipos::Mayorista)
		{
			$Content = '';
			$Content.= 'Su registro ha sido procesado, por favor haga clic en el siguiente enlace para validar su casilla de correo.<br>';
			$Content.= '<a href="' . Config::UrlSitioEspanol . 'registro/' . $Code .'">' . Config::UrlSitioEspanol . 'registro/' . $Code . '</a><br><br>';
			$Content.= 'Una vez validada la casilla de correo se le enviar� un mail al administrador del sitio para que active su cuenta. <br>';
			$Content.= 'El mismo verificar� sus datos personales y le enviar� un aviso de activaci�n.<br><br>';
		}

		$Content.= 'Muchas Gracias.<br>';
		$Content.= 'El equipo de ' . $oDatosEmpresa->RazonSocial . '.<br>';
		$Content.= 'Tel: (' . $oDatosEmpresa->CodigoAreaTelefono . ') - ' . $oDatosEmpresa->Telefono . '<br>';
		$Content.= '<b>' . $oDatosEmpresa->Email . '.</b>';
		
		mail ($Email, $oDatosEmpresa->RazonSocial . ' - Apertura de cuenta', $Content, $Headers);
	}
	

	public function SendMailCuentaActivada()
	{
		$Email = $this->Email;
	
		/* obtenemos los datos de la empresa */
		$oDatosEmpresa = new DatosEmpresa();
		$oDatosEmpresa = $oDatosEmpresa->GetRow();

		/* obtenemos informacion de configuracion del sitio */
		$oConfiguraciones = new Configuraciones();
		$oConfiguracion = $oConfiguraciones->GetRow();
	
		$Headers = "";
		$Headers.= "MIME-Version: 1.0" . "\r\n";
		$Headers.= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; 
		$Headers.= "X-Mailer: php" . "\r\n";
		$Headers.= 'To: ' . $this->Nombre . ' ' . $this->Apellido . '<' . $this->Email . '>' . "\r\n";
		$Headers.= "From: " . $oDatosEmpresa->RazonSocial . "\r\n";
		$Headers.= " <" . $oConfiguracion->EmailNoReply . ">" . "\r\n";
				
		$Content = '';
		$Content.= 'Estimado ' . $this->Nombre . ' ' . $this->Apellido . ',<br>';
		$Content.= 'Su cuenta ha sido activada.<br><br>';
		$Content.= 'Haga clic en el siguiente enlace para comenzar a operar en nuestro sitio.<br>';
		$Content.= '<a href=' . Config::UrlSitioEspanol . 'login.php>' . Config::UrlSitioEspanol . 'login.php' . '</a><br><br>';
		$Content.= 'Muchas Gracias.<br>';
		$Content.= 'El equipo de ' . $oDatosEmpresa->RazonSocial . '.<br>';
		$Content.= 'Tel: (' . $oDatosEmpresa->CodigoAreaTelefono . ') - ' . $oDatosEmpresa->Telefono . '<br>';
		$Content.= '<b>' . $oDatosEmpresa->Email . '.</b>';
		
		// mail($Email, $oDatosEmpresa->RazonSocial . " - Cuenta Confirmada", $Content, $Headers);

		GMail::SendEmail($oDatosEmpresa->RazonSocial . " - Cuenta Confirmada", $Content, array($Email));

		return true;	
	}


	public function SendMailCompra()
	{
		$Email = $this->Email;
	
		/* obtenemos los datos de la empresa */
		$oDatosEmpresa = new DatosEmpresa();
		$oDatosEmpresa = $oDatosEmpresa->GetRow();

		/* obtenemos informacion de configuracion del sitio */
		$oConfiguraciones = new Configuraciones();
		$oConfiguracion = $oConfiguraciones->GetRow();
	
		$Headers = "";
		$Headers.= "MIME-Version: 1.0" . "\r\n";
		$Headers.= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; 
		$Headers.= "X-Mailer: php" . "\r\n";
		$Headers.= 'To: ' . $this->Nombre . ' ' . $this->Apellido . '<' . $this->Email . '>' . "\r\n";
		$Headers.= "From: " . $oDatosEmpresa->RazonSocial . "\r\n";
		$Headers.= " <" . $oConfiguracion->EmailNoReply . ">" . "\r\n";
				
		$Content = '';
		$Content = Compras::ExportToEmail();
		
		mail($Email, $oDatosEmpresa->RazonSocial . " - Orden de Pedido", $Content, $Headers);

		return true;	
	}
	
	public function SendMailChangePassword()
	{
		$Email = $this->Email;
	
		/* obtenemos los datos de la empresa */
		$oDatosEmpresa = new DatosEmpresa();
		$oDatosEmpresa = $oDatosEmpresa->GetRow();

		/* obtenemos informacion de configuracion del sitio */
		$oConfiguraciones = new Configuraciones();
		$oConfiguracion = $oConfiguraciones->GetRow();
	
		$Headers = "";
		$Headers.= "MIME-Version: 1.0" . "\r\n";
		$Headers.= "Content-type: text/html; charset=utf-8" . "\r\n"; 
		$Headers.= "X-Mailer: php" . "\r\n";
		$Headers.= 'To: ' . $this->Nombre . ' ' . $this->Apellido . '<' . $this->Email . '>' . "\r\n";
		$Headers.= "From: " . utf8_encode($oDatosEmpresa->RazonSocial) . "\r\n";
		$Headers.= " <" . $oConfiguracion->EmailNoReply . ">" . "\r\n";
		
		$Content = '';
		$Content.= "Se ha recibido una solicitud para reestablecer su contrase&ntilde;a de la aplicaci&oacute;n de la SAR.<br>";
		$Content.= "Su c&oacute;digo es: <b>" . $this->Contrasenia . "</b><br>"; 
		$Content.= 'Muchas Gracias.<br>';
		$Content.= 'El equipo de ' . $oDatosEmpresa->RazonSocial . '.<br>';
		$Content.= '<b>' . $oDatosEmpresa->Email . '.</b>';
		
		// if (!mail($Email, ($oDatosEmpresa->RazonSocial . " - Recuperación de cuenta"), utf8_encode($Content), $Headers))
		// {
		// 	return false;
		// }

		GMail::SendEmail("SAR - Reestablecer cuenta", $Content, array($Email));

		return true;	
	}


	public function CanDelete()
	{

		return true;
	}
	

	public function GetAllGrupos()
	{
		$UsuarioGrupos = new UsuarioGrupos();
		
		return $UsuarioGrupos->GetAllByUsuario($this);
	}

	
	public function GetAllCompras()
	{
		$Transacciones = new Transacciones();
		
		return $Transacciones->GetAllByUsuario($this);
	}	
	
	
	public function GetCountAccesos(array $filter = NULL)
	{
		$LogAccesos = new LogAccesos();
		
		return $LogAccesos->GetCountByUsuario($this, $filter);
	}					


	public function GetAllAccesos(array $filter = NULL, Page $oPage = NULL)
	{
		$LogAccesos = new LogAccesos();
		
		return $LogAccesos->GetAllByUsuario($this, $filter, $oPage);
	}					


	public function GetCountVisitas(array $filter = NULL)
	{
		$LogVisitas = new LogVisitas();
		
		return $LogVisitas->GetCountByUsuario($this, $filter);
	}					


	public function GetAllVisitas(array $filter = NULL, Page $oPage = NULL)
	{
		$LogVisitas = new LogVisitas();
		
		return $LogVisitas->GetAllByUsuario($this, $filter, $oPage);
	}					


	public function GetCountBusquedas(array $filter = NULL)
	{
		$LogBusquedas = new LogBusquedas();
		
		return $LogBusquedas->GetCountByUsuario($this, $filter);
	}					


	public function GetAllBusquedas(array $filter = NULL, Page $oPage = NULL)
	{
		$LogBusquedas = new LogBusquedas();
		
		return $LogBusquedas->GetAllByUsuario($this, $filter, $oPage);
	}		

	public function GenerateAccessToken()
	{
		$oUsuarios	= new Usuarios();
		$tokenId    = base64_encode(random_bytes(32));
		$issuedAt   = time();
		$notBefore  = $issuedAt;
		$expire     = $notBefore + 3600;
		$serverName = $_SERVER["SERVER_NAME"];

		$json = array(
			'iat'  => $issuedAt,
			'jti'  => $tokenId,
			'iss'  => $serverName,
			'nbf'  => $notBefore,
			'exp'  => $expire,
			'userId' => $this->IdUsuario
		);
		
		$this->AccessToken = TokenGenerator::GenerateToken($json);
		$this->Contrasenia	= '';

		$oUsuarios->UpdateAccessToken($this);

		return $this->AccessToken;
	}	

	public function GenerateRefreshToken()
	{
		$oUsuarios	= new Usuarios();
		$tokenId    = base64_encode(random_bytes(32));
		$issuedAt   = time();
		$notBefore  = $issuedAt;
		$expire     = $notBefore + 60 * 60 * 24 * 60; //60 días
		$serverName = $_SERVER["SERVER_NAME"];

		$json = array(
			'iat'  => $issuedAt,
			'jti'  => $tokenId,
			'iss'  => $serverName,
			'nbf'  => $notBefore,
			'exp'  => $expire,
			'userId' => $this->IdUsuario
		);
		
		$this->Token = TokenGenerator::GenerateToken($json);
		$this->Contrasenia	= '';

		$oUsuarios->UpdateToken($this);

		return $this->Token;
	}

	public function RevokeTokens()
	{
		$oUsuarios	= new Usuarios();
		$this->AccessToken = '';
		$oUsuarios->UpdateAccessToken($this);
		$this->Token = '';
		$oUsuarios->UpdateToken($this);
	}
}

?>

Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat