Actualizacion desarrollo panel de control y busqueda de usuarios

parent be3e19d5
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
{% endblock %} {% endblock %}
{% block contenido %} {% block contenido %}
<!-- begin breadcrumb --> <!-- begin breadcrumb -->
<ol class="breadcrumb pull-right"> <ol class="breadcrumb pull-right">
<li><a href="javascript:;">Home</a></li> <li><a href="javascript:;">Home</a></li>
...@@ -17,30 +17,198 @@ ...@@ -17,30 +17,198 @@
<!-- begin row --> <!-- begin row -->
<div class="row"> <div class="row">
<div id="message-container-busqueda"></div>
<div id="message-container-info-busqueda"></div>
<select class="form-control" id="opciones" name="opciones">
<option value="tel">Teléfono</option>
<option value="mail">Correo</option>
</select>
<form id="fmBuscar" class="form-inline" action="/" method="POST"> <form id="fmBuscar" class="form-inline" action="/" method="POST">
<div class="input-group"> <input type="hidden" id="selectedOption" name="selectedOption" value="tel">
<span class="input-group-addon">+56</span> <div id="busquedaMsisdn" style="display: block">
<input type="text" id="msisdn" name="msisdn" class="form-control" placeholder="Teléfono (9 dígitos)" maxlength="9" value="995064691"> <div class="input-group">
</div> <span class="input-group-addon">+56</span>
<input type="text" id="msisdn" name="msisdn" class="form-control" placeholder="Teléfono (9 dígitos)" maxlength="9" value="">
<button type="button" class="btn btn-primary" onclick="buscar(event)" data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i> Cargando resultados..."><i class="fa fa-search"></i> Buscar</button> </div>
</div>
<div id="busquedaMail" style="display:none">
<div class="input-group">
<span class="input-group-addon">@</span>
<input type="text" id="mail" name="mail" class="form-control" placeholder="abc@mail.cl" maxlength="255" value="">
</div>
</div>
<button id="searchButton" name="searchButton" type="button" class="btn btn-primary" onclick="buscar(event)" data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i> Cargando resultados..."><i class="fa fa-search"></i> Buscar</button>
</form> </form>
</div> </div>
<div class="row" id="infoUsuario" style="display:none">
</div>
{% include 'backend/research/includes/modal_edicion_datos_usuarios.html.twig' %}
{% endblock %} {% endblock %}
{% block javascripts %} {% block javascripts %}
<script> <script>
function buscar(event) { function buscar(event) {
event.preventDefault(); event.preventDefault();
console.log("buscar..."); var option = $("#selectedOption").val();
console.log("buscar por "+option);
var formData = new FormData();
var url = "{{path('backend_researcher_buscar_usuario')}}";
formData.append("opcionBusqueda",option);
if(option === "tel"){
formData.append("valorBusqueda", $("#msisdn").val());
}else if(option === "mail"){
formData.append("valorBusqueda", $("#mail").val());
}
$("#searchButton").prop("disabled", true);
$.ajax
({
type: "POST",
url: url,
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
timeout: 60000,
statusCode: {
400: function (respuesta) {
errorMessage(JSON.parse(respuesta.responseText).errors, "#message-container-busqueda");
},
500: function () {
errorMessage("Ha ocurrido un error.Intente nuevamente", "#message-container-busqueda");
}
},
success: function (data) {
$("#infoUsuario").show();
$("#infoUsuario").html(data);
},
});
$("#searchButton").prop("disabled", false);
}
function openEditarDatosUsuario(event, id, mail, telefono){
event.preventDefault();
//Seteo de los datos del usuario en modal desplegado
$("#correoUsuario").val(mail);
$("#correoUsuario").html(mail);
$("#telefonoUsuario").val(telefono);
$("#telefonoUsuario").html(telefono);
$("#idUsuario").val(id);
$("#modalEdicionUsuarios").modal({
backdrop: 'static',
keyboard: false
});
}
function editarDatosUsuario(event){
event.preventDefault();
var formData = new FormData();
var url = "{{path('backend_researcher_editar_usuario')}}";
formData.append("telefonoUsuario", $("#telefonoUsuario").val());
formData.append("correoUsuario", $("#correoUsuario").val());
formData.append("idUsuario", $("#idUsuario").val());
$("#btnEditarUsuario").prop("disabled", true);
$.ajax
({
type: "POST",
url: url,
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
timeout: 60000,
statusCode: {
400: function (respuesta) {
$("#message-container-edicion-success").hide();
$("#message-container-edicion").show();
errorMessage(JSON.parse(respuesta.responseText).errors, "#message-container-edicion");
},
500: function () {
$("#message-container-edicion-success").hide();
$("#message-container-edicion").show();
errorMessage("Ha ocurrido un error.Intente nuevamente", "#message-container-edicion");
}
},
success: function () {
$("#message-container-edicion").hide();
$("#message-container-edicion-success").show();
successMessage("El usuario ha sido editado correctamente", "#message-container-edicion-success");
},
});
$("#btnEditarUsuario").prop("disabled", false);
}
function enviarLicencia(event, tipo){
event.preventDefault();
//todo
var formData = new FormData();
var url = "{{path('backend_researcher_enviar_correo')}}";
formData.append("idUsuario", $("#idUsuario").val());
$.ajax
({
type: "POST",
url: url,
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
timeout: 60000,
statusCode: {
400: function (respuesta) {
errorMessage(JSON.parse(respuesta.responseText).errors, "#message-container-busqueda");
},
500: function () {
errorMessage("Ha ocurrido un error.Intente nuevamente", "#message-container-busqueda");
}
},
success: function () {
successMessage("El usuario ha sido editado correctamente", "#message-container-busqueda");
},
});
} }
$('#opciones').on('change', function () {
$("#selectedOption").val(this.value);
if($("#selectedOption").val() === "tel"){
$("#busquedaMsisdn").show();
$("#busquedaMail").hide();
}else{
$("#busquedaMsisdn").hide();
$("#busquedaMail").show();
}
});
function errorMessage(msg, container) {
console.log(msg);
var error = '<div class="alert alert-danger" role="alert">' + msg + '</div>';
$(container).html(error);
}
function successMessage(msg, container) {
var success = '<div class="alert alert-success" role="alert">' + msg + '</div>';
$(container).html(success);
}
</script> </script>
{% endblock %} {% endblock %}
\ No newline at end of file
<!-- begin col-3 -->
<hr>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 ui-sortable">
<!-- begin panel -->
<div class="panel panel-inverse" data-sortable-id="ui-general-3">
<div class="panel-heading">
<div class="panel-heading-btn">
</div>
<h4 class="panel-title">Información General</h4>
</div>
{%if usuario is not null %}
<div class="panel-body">
<span title="Editar datos usuario" style="float:right;cursor:pointer" onclick="openEditarDatosUsuario(event,{{usuario.getUmcId()}},'{{usuario.getUmcMovistarEmail()}}','{{usuario.getUmcMovil()}}')"><i class="fa fa-edit fa-3x"></i></span>
<div class="btn-group m-r-5 m-b-5">
<a href="javascript:;" class="btn btn-primary"><i class="fa fa-share"></i> Enviar Licencia</a>
<a href="javascript:;" data-toggle="dropdown" class="btn btn-primary dropdown-toggle" aria-expanded="false">
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right">
<li><a onclick="enviarLicencia(event, 'correo', '{{usuario.getUmcMovistarEmail()}}')">Vía Email</a></li>
</ul>
</div>
<br><br>
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr><td>Servicio</td><td><b>{{usuario.getTipoServicio()}}</b></td></tr>
<tr><td>Email</td><td>{{usuario.getUmcMovistarEmail()}}</td></tr>
<tr><td>Teléfono</td><td>{%if usuario.getUmcMovil() is null %}<b>No tiene</b>{% else %}{{usuario.getUmcMovil()}}{% endif %}</td></tr>
</tbody>
</table>
</div>
</div>
{% else %}
<div class="panel-body">
<span>Usuario no encontrado</span>
</div>
{% endif %}
</div>
<!-- end panel -->
</div>
<!-- end col-3 -->
<!-- Modal -->
<div class="modal fade" id="modalEdicionUsuarios" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 id="" class="modal-title modalTitleCustom">Cliente Mcafee</h4>
<button onclick="" type="button" class="close modalCloseCustom" data-dismiss="modal">&times;</button>
</div>
<div id="" class="modal-body">
<div class="row">
<div class="col-md-12">
<p>Ingrese los datos a editar</p>
<div id="message-container-edicion-success"></div>
<div id="message-container-edicion"></div>
<form class="form-horizontal" action="/" method="post">
<input type="hidden" id="idUsuario" name="idUsuario">
<div class="form-group">
<div class="col-md-12">
<label class="form-label">Correo</label>
<input class="form-control focused" id="correoUsuario" name="correoUsuario" required title="Ingrese su correo electrónico" type="text" placeholder="Ej:abc@mail.cl">
</div>
<br>
<div class="col-md-12">
<label class="form-label">Teléfono</label>
<input class="form-control focused" id="telefonoUsuario" name="telefonoUsuario" required title="Ingrese su correo electrónico" maxlength ="9" type="text" placeholder="Ej:974867425">
</div>
</div>
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button id="btnEditarUsuario" type="button" onclick="editarDatosUsuario(event)" class="btn btn-danger">Guardar</button>
</div>
</div>
</div>
</div>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>MacAfee y Movistar</title>
</head>
<body style="margin:0; padding:0;color:#FFFFFF; font-family: Trebuchet MS,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Tahoma,sans-serif;">
<!--contenedor principal -->
<table border="0" cellpadding="0" cellspacing="0" width="600" style="margin: 0 auto;">
<tr>
<tr>
<td align="center" style="padding:10px 30px 10px 15px; background:#ffffff; color:#666666; font-size:12px; ">
Para obtener tu licencia haz <a href="{{licencia}}" target="_blank" style="color:#666666;text-decoration:none">click aquí</a>
</td>
</tr>
<tr>
<td align="left" style="padding:10px 30px 10px 15px; background:#10628a; ">
<img src="https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/logo-movistar.gif" alt="LOGOTIPO MOVISTAR" width="200"/>
</td>
</tr>
<td style="margin:0; padding:0; line-height: 0;">
<img src="https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/back-1.jpg" alt="MOVISTAR Y MAC AFEE - UNA BUENA ALIANZA PARA TI" />
</td>
</tr>
<tr>
<td style="width:100%; height:750px; display:block; background:#136285 url(https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/back-2.jpg) repeat-x;">
<table align="center">
<tr>
<td style="padding:10px 45px; margin: 0 auto; color:#FFFFFF; font-family: Trebuchet MS,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Tahoma,sans-serif;" align="center">
<p style="font-size:1.8em; font-weight:normal; text-align:center;">¿Haciendo transacciones bancarias<br>sin descargar tu protección?</p>
<table>
<tr>
<td>
<img src="https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/antivirus-f.gif" alt="ANTIVIRUS MCAFEE" style="padding:0 0 0 0; margin:0 auto; text-align: center;"/>
</td>
</tr>
</table>
<p style="font-size:1.8em; font-weight:normal; text-align:center; color:#FFFFFF; font-family: Trebuchet MS,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Tahoma,sans-serif;">Movistar y McAfee lo tienen para ti<br><strong>totalmente GRATIS</strong>.</p>
</td>
</tr>
</table>
<table>
<tr>
<td style="padding:20px 40px 20px 65px;">
<img src="https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/mcafee-download.gif" alt="ICONO DESCARGA"/>
</td>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td style="padding:20px 40px 20px 65px;">
<img src="https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/mouse.gif" alt="ICONO MOUSE"/>
</td>
<td style="padding:20px 65px 20px 10px;">
<p style="font-size:1.4em; font-weight:normal;" align="left">La banda ancha más segura, <br/>sólo es <strong>Movistar</strong>.</p>
</td>
</tr>
</table>
<table align="center">
<tr>
<td style="padding:35px 0 0 0;">
<img src="https://s3.amazonaws.com/mcafee-movistar/emailing/antivirus/1/images/logo-mcafee.gif" alt="LOGOTIPO MCAFEE" width="200"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
</tr>
</table>
<!--cierre contenedor principal -->
</body>
</html>
\ No newline at end of file
...@@ -13,7 +13,7 @@ use AppBundle\Model\ParametroConfiguracionQuery; ...@@ -13,7 +13,7 @@ use AppBundle\Model\ParametroConfiguracionQuery;
* @author Luis Arcos * @author Luis Arcos
*/ */
class Utiles { class Utiles {
public static function setLog($type = '', $archivo = 'web') { public static function setLog($type = '', $archivo = 'web') {
$logFechaNombre = $archivo . "_" . date("Ymd") . ".log"; $logFechaNombre = $archivo . "_" . date("Ymd") . ".log";
$logPath = __DIR__ . '/../../../app/logs/' . $logFechaNombre; $logPath = __DIR__ . '/../../../app/logs/' . $logFechaNombre;
...@@ -25,7 +25,7 @@ class Utiles { ...@@ -25,7 +25,7 @@ class Utiles {
$log->pushHandler($handler); $log->pushHandler($handler);
return $log; return $log;
} }
/** /**
* Retorna un objeto DateTime si se puede crear con el string pasado, * Retorna un objeto DateTime si se puede crear con el string pasado,
* FALSE de lo contrario * FALSE de lo contrario
...@@ -35,15 +35,13 @@ class Utiles { ...@@ -35,15 +35,13 @@ class Utiles {
*/ */
public static function getDateTimeObject($strDate) { public static function getDateTimeObject($strDate) {
try { try {
$dateTimeObject = new \DateTime($strDate); $dateTimeObject = new \DateTime($strDate);
} } catch (\Exception $exc) {
catch (\Exception $exc) {
return FALSE; return FALSE;
} }
return $dateTimeObject; return $dateTimeObject;
} }
// --------------------------------------------------------- // ---------------------------------------------------------
// ----- object_to_array_recusive --- function (PHP) ------ // ----- object_to_array_recusive --- function (PHP) ------
// -------------------------------------------------------- // --------------------------------------------------------
...@@ -55,31 +53,31 @@ class Utiles { ...@@ -55,31 +53,31 @@ class Utiles {
// -------------------------------------------------------- // --------------------------------------------------------
public static function object_to_array_recusive($object, $assoc = 1, $empty = '') { public static function object_to_array_recusive($object, $assoc = 1, $empty = '') {
$out_arr = array(); $out_arr = array();
$assoc = (!empty($assoc)) ? TRUE : FALSE; $assoc = (!empty($assoc)) ? TRUE : FALSE;
if (!empty($object)) { if (!empty($object)) {
$arrObj = is_object($object) ? get_object_vars($object) : $object; $arrObj = is_object($object) ? get_object_vars($object) : $object;
$i = 0; $i = 0;
foreach ($arrObj as $key => $val) { foreach ($arrObj as $key => $val) {
$akey = ($assoc !== FALSE) ? $key : $i; $akey = ($assoc !== FALSE) ? $key : $i;
if (is_array($val) || is_object($val)) { if (is_array($val) || is_object($val)) {
$out_arr[$key] = (empty($val)) ? $empty : self::object_to_array_recusive($val); $out_arr[$key] = (empty($val)) ? $empty : self::object_to_array_recusive($val);
} else { } else {
$out_arr[$key] = (empty($val)) ? $empty : (string) $val; $out_arr[$key] = (empty($val)) ? $empty : (string) $val;
}
$i++;
} }
$i++;
} }
return $out_arr;
} }
return $out_arr;
}
// -------------------------------------------------------- // --------------------------------------------------------
// -------------------------------------------------------- // --------------------------------------------------------
public static function base64url_encode($data) { public static function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
} }
...@@ -87,15 +85,161 @@ class Utiles { ...@@ -87,15 +85,161 @@ class Utiles {
public static function base64url_decode($data) { public static function base64url_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT)); return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
} }
public static function getParametroConfiguracion($nombre) { public static function getParametroConfiguracion($nombre) {
$str_valor = ''; $str_valor = '';
$parametro = ParametroConfiguracionQuery::create()->findOneByPcoNombre($nombre); $parametro = ParametroConfiguracionQuery::create()->findOneByPcoNombre($nombre);
if ($parametro) if ($parametro)
$str_valor = $parametro->getPcoValor (); $str_valor = $parametro->getPcoValor();
return $str_valor; return $str_valor;
} }
public static function isMsisdn($msisdn) {
if (strlen($msisdn) != 9 || !is_numeric($msisdn)) {
return false;
} else {
return true;
}
}
public static function formatMsisdnSpecial($msisdn) {
if (preg_match("/^[0-9]+$/", $msisdn) && strlen($msisdn) == 9) {
// if(is_numeric($msisdn) && strlen($msisdn) == 8){
return $msisdn;
}
return false;
}
public static function generarCodiogUnico($seed) {
return md5(uniqid($seed, true));
}
public static function getPublicRoot() {
return $pathRoot = __DIR__ . '/../../public';
}
public static function checkIP($ip) {
$url = "http://soperator.gearlabs.cl/GetOperador?ip=$ip";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode == 200) {
if (is_array($output) && $output !== "") {
$operador = json_decode($output, true)["operador"];
if ($operador == "entel") {
return true;
}
}
}
return false;
}
public static function detectChromeBrowser($ua) {
if (preg_match('/(Chrome|CriOS)\//i', $ua) && !preg_match('/(Aviator|ChromePlus|coc_|Dragon|Edge|Flock|Iron|Kinza|Maxthon|MxNitro|Nichrome|OPR|Perk|Rockmelt|Seznam|Sleipnir|Spark|UBrowser|Vivaldi|WebExplorer|YaBrowser)/i', $ua)) {
return true;
} else {
return false;
}
}
public static function isWindowsChrome($ua) {
$os = self::getOS($ua);
$browser = self::getBrowser($ua);
if (self::detectWord($os, "Windows") && self::detectWord($browser, "Chrome")) {
return true;
} else {
return false;
}
}
public static function detectWord($str, $word) {
return !!preg_match('#\\b' . preg_quote($word, '#') . '\\b#i', $str);
}
protected static function getOS($user_agent) {
$os_platform = "Unknown OS Platform";
$os_array = array(
'/windows nt 10/i' => 'Windows 10',
'/windows nt 6.3/i' => 'Windows 8.1',
'/windows nt 6.2/i' => 'Windows 8',
'/windows nt 6.1/i' => 'Windows 7',
'/windows nt 6.0/i' => 'Windows Vista',
'/windows nt 5.2/i' => 'Windows Server 2003/XP x64',
'/windows nt 5.1/i' => 'Windows XP',
'/windows xp/i' => 'Windows XP',
'/windows nt 5.0/i' => 'Windows 2000',
'/windows me/i' => 'Windows ME',
'/win98/i' => 'Windows 98',
'/win95/i' => 'Windows 95',
'/win16/i' => 'Windows 3.11',
'/macintosh|mac os x/i' => 'Mac OS X',
'/mac_powerpc/i' => 'Mac OS 9',
'/linux/i' => 'Linux',
'/ubuntu/i' => 'Ubuntu',
'/iphone/i' => 'iPhone',
'/ipod/i' => 'iPod',
'/ipad/i' => 'iPad',
'/android/i' => 'Android',
'/blackberry/i' => 'BlackBerry',
'/webos/i' => 'Mobile'
);
foreach ($os_array as $regex => $value)
if (preg_match($regex, $user_agent))
$os_platform = $value;
return $os_platform;
}
protected static function getBrowser($user_agent) {
$browser = "Unknown Browser";
$browser_array = array(
'/msie/i' => 'Internet Explorer',
'/firefox/i' => 'Firefox',
'/safari/i' => 'Safari',
'/chrome/i' => 'Chrome',
'/edge/i' => 'Edge',
'/opera/i' => 'Opera',
'/netscape/i' => 'Netscape',
'/maxthon/i' => 'Maxthon',
'/konqueror/i' => 'Konqueror',
'/mobile/i' => 'Handheld Browser'
);
foreach ($browser_array as $regex => $value)
if (preg_match($regex, $user_agent))
$browser = $value;
return $browser;
}
/**
* FUNCIÓN PARA VALIDAR CORREO ELECTRÓNICO, MEDIANTE USO DE EXPRESIÓN REGULAR.
* @param type $email
* @return int
*/
public static function validarCorreo($email = "") {
$expresion_regular_correo = "/^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i";
if (preg_match($expresion_regular_correo, $email)) {
return 1;
} else {
return 0;
}
}
} }
...@@ -27,6 +27,14 @@ class UsuarioMcafee extends BaseUsuarioMcafee ...@@ -27,6 +27,14 @@ class UsuarioMcafee extends BaseUsuarioMcafee
return Utiles::base64url_encode($crypt->AES_Encode($strAencriptar)); return Utiles::base64url_encode($crypt->AES_Encode($strAencriptar));
} }
public function getTipoServicio(){
if($this->getUmcMcafeeTipoProducto() == self::TIPO_MULTIDEVICE){
return "Servicio Multi-Dispositivo";
}else{
return "Servicio Antivirus";
}
}
/** /**
* *
* @param type $str * @param type $str
......
...@@ -4,6 +4,8 @@ namespace BackendBundle\Controller; ...@@ -4,6 +4,8 @@ namespace BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use AppBundle\Lib\Utiles; use AppBundle\Lib\Utiles;
use AppBundle\Model\UsuarioMcafee; use AppBundle\Model\UsuarioMcafee;
use AppBundle\Model\UsuarioMcafeeQuery; use AppBundle\Model\UsuarioMcafeeQuery;
...@@ -11,10 +13,126 @@ use AppBundle\Model\UsuarioMcafeeQuery; ...@@ -11,10 +13,126 @@ use AppBundle\Model\UsuarioMcafeeQuery;
class ResearchController extends Controller { class ResearchController extends Controller {
public function busquedaUsuarioAction(){ public function busquedaUsuarioAction(){
$log = Utiles::setLog('BackendBundle\Controller\ResearchController:buscarUsuarioAction', 'backend/backend'); $log = Utiles::setLog('BackendBundle\Controller\ResearchController:busquedaUsuarioAction', 'backend/backend');
$log->debug('Entrando a busqueda'); $log->debug('Entrando a busqueda');
return $this->render('backend/research/busqueda.html.twig'); return $this->render('backend/research/busqueda.html.twig');
}
public function buscarAction(Request $request){
$log = Utiles::setLog('BackendBundle\Controller\ResearchController:buscarAction', 'backend/backend');
$log->debug("Entrando a busqueda de usuario");
$tipo = $request->get("opcionBusqueda",null);
$valorBusqueda = $request->get("valorBusqueda",null);
$usuario = null;
if($tipo == "tel"){
$usuario = UsuarioMcafeeQuery::create()->filterByUmcMovil($valorBusqueda)->filterByUmcEliminado(UsuarioMcafee::ELIMINADO_FALSE)->findOne();
}else if($tipo == "mail"){
$usuario = UsuarioMcafeeQuery::create()->filterByUmcMovistarEmail($valorBusqueda)->filterByUmcPermiteEmail(1)->filterByUmcEliminado(UsuarioMcafee::ELIMINADO_FALSE)->findOne();
}
return $this->render('backend/research/includes/cuadroInformacionUsuario.html.twig', array("usuario" => $usuario));
}
public function editarAction(Request $request){
$log = Utiles::setLog('BackendBundle\Controller\ResearchController:editarAction', 'backend/backend');
$log->debug("Entrando a edicion de usuario");
$json = new JsonResponse();
$telefono = $request->get("telefonoUsuario",null);
$mail = $request->get("correoUsuario", null);
$idUsuario = $request->get("idUsuario", null);
$log->debug("telefono $telefono | mail $mail | idUsuario $idUsuario");
if (!is_numeric($idUsuario)) {
$log->debug("Id usuario invalido $idUsuario...");
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST, 'Id usuario ingresado inválido.');
$json->setData(array('errors' => 'El usuario no es válido.'));
return $json;
}
if (Utiles::validarCorreo($mail) == 0) {
$log->debug("Mail Invalido $mail...");
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST, 'Correo ingresado inválido.');
$json->setData(array('errors' => 'El correo ingresado no es válido.'));
return $json;
}
if (!is_numeric($telefono)) {
$log->debug("Numero telefonico invalido $telefono...");
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST, 'Numero ingresado inválido.');
$json->setData(array('errors' => 'El numero ingresado no es válido.'));
return $json;
}
$usuarioMcafee = UsuarioMcafeeQuery::create()->filterByUmcId($idUsuario)->findOne();
$usuarioMcafee->setUmcMcafeeEmail($mail);
$usuarioMcafee->setUmcMovil($telefono);
$usuarioMcafee->save();
$log->debug("retornando...");
$json->setStatusCode(JsonResponse::HTTP_OK, 'OK');
$json->setData("OK");
return $json;
}
public function enviarCorreo(Request $request){
$log = Utiles::setLog('BackendBundle\Controller\ResearchController:enviarCorreo', 'backend/backend');
$log->debug("Entrando a envio de correo de usuario");
$json = new JsonResponse();
$idUsuario = $request->get("idUsuario", null);
$log->debug("telefono $telefono | mail $mail | idUsuario $idUsuario");
if (!is_numeric($idUsuario)) {
$log->debug("Id usuario invalido $idUsuario...");
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST, 'Id usuario ingresado inválido.');
$json->setData(array('errors' => 'El usuario no es válido.'));
return $json;
}
$usuarioMcafee = UsuarioMcafeeQuery::create()->filterByUmcId($idUsuario)->findOne();
if (Utiles::validarCorreo($usuarioMcafee->getUmcMovistarEmail()) == 0) {
$log->debug("Mail Invalido". $usuarioMcafee->getUmcMovistarEmail());
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST, 'Correo ingresado inválido.');
$json->setData(array('errors' => 'El correo del usuario no es válido.'));
return $json;
}
//Envio de correo
$correo = \Swift_Message::newInstance()
->setSubject(Utiles::getParametroConfiguracion("titulo_correo_licencia"))
->setFrom(array(Utiles::getParametroConfiguracion("from_correo_licencia") => Utiles::getParametroConfiguracion("alias_correo_licencia")))
->setTo($usuarioMcafee->getUmcMovistarEmail())
->setBody(
$this->get('templating')->render('backend/emailing/research/licencia.html.twig',
array(
'usuario' => $usuarioMcafee->getUmcMcafeeKeycard(),
)
),
'text/html'
);
$log->debug('enviando E-mail...');
if($this->get('mailer')->send($correo)){
$log->debug('email enviado a '.$usuarioMcafee->getUmcMovistarEmail());
$log->debug("retornando...");
$json->setStatusCode(JsonResponse::HTTP_OK, 'OK');
$json->setData("OK");
return $json;
}
else{
$log->debug("error al enviar mail...");
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST, 'Ocurrio un error al tratar de enviar el mail...');
$json->setData(array('errors' => 'Ocurrio un error al tratar de enviar el mail.'));
return $json;
}
} }
} }
...@@ -85,4 +85,20 @@ backend_researcher_buscar: ...@@ -85,4 +85,20 @@ backend_researcher_buscar:
path: /researcher/busqueda/usuario path: /researcher/busqueda/usuario
defaults: { _controller: BackendBundle:Research:busquedaUsuario } defaults: { _controller: BackendBundle:Research:busquedaUsuario }
backend_researcher_buscar_usuario:
path: /researcher/buscar
defaults: {_controller: BackendBundle:Research:buscar}
methods: [POST]
backend_researcher_editar_usuario:
path: /researcher/editar/usuario
defaults: {_controller: BackendBundle:Research:editar}
methods: [POST]
backend_researcher_enviar_correo:
path: /researcher/enviar/correo
defaults: {_controller: BackendBundle:Rsearch:enviarCorreo}
methods: [POST]
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment