Example #1
0
 /**
  * @param Request $request
  * @param Application $app
  *
  * @return JsonResponse
  */
 public function guardarCategorias(Request $request, Application $app)
 {
     if ($request->isXmlHttpRequest() && 'POST' == $request->getMethod()) {
         $correo = $request->get('correo');
         $categorias = $request->get('categorias');
         if (empty($categorias)) {
             $categorias = array('Todas' => 1);
         }
         $suscriptorModelo = new SuscriptorModel($app['db']);
         if ($suscriptorModelo->existeCorreo($correo)) {
             $filasAfectadas = $suscriptorModelo->guardar($correo, $categorias);
             if ($filasAfectadas == 1) {
                 $sendMail = new SendMail(array(), $app['swiftmailer.transport']);
                 # Asunto para el usuario
                 $asunto = "Registro de suscriptor - El Precursor";
                 # Administrador
                 $mensajeAdmin = '<div style="margin:auto;position: relative;background: #FFF;border-top: 2px solid #00C0EF;margin-bottom: 20px;border-radius: 3px;width: 90%;box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);padding: 20px 30px">';
                 $mensajeAdmin .= "<p>Se ha registrado un suscriptor nuevo en El Precursor.</p>";
                 $mensajeAdmin .= "<p>Detalles del suscriptor:</p>";
                 $mensajeAdmin .= "<div style=\"background-color: #F0F7FD;margin: 0px 0px 20px;padding: 15px 30px 15px 15px;border-left: 5px solid #D0E3F0;\"><b>Correo:</b> {$correo}. <b>Categorias:</b> " . implode(', ', array_values($categorias)) . "</div>";
                 $mensajeAdmin .= '</div>';
                 $resultAdmin = $sendMail->setMessage($asunto, '*****@*****.**', array('*****@*****.**' => 'El Precursor'), $mensajeAdmin)->send();
                 return new JsonResponse('Se guardo categorías', 200);
             } else {
                 return new JsonResponse('No se guardo', 202);
             }
         } else {
             return new JsonResponse('No existe correo de usuario', 202);
         }
     }
 }
Example #2
0
 /**
  * Función para registrarse como usuario
  * @param Application $app
  * @param Request $request
  * 
  * @return mixed
  */
 public function signup(Application $app, Request $request)
 {
     if ("POST" == $request->getMethod()) {
         // Se adquiere el encoder
         $encoder = $app['security.encoder.digest'];
         $data = $request->get('Usuario');
         $usuarioModelo = new UsuarioModelo($app['db']);
         if ($usuarioModelo->existe(null, $data['correo'])) {
             return new JsonResponse(array('mensaje' => 'Correo electrónico ya existe.', 'campo' => 'alias'), 400);
         } else {
             if ($usuarioModelo->existe($data['alias'])) {
                 return new JsonResponse(array('mensaje' => 'Alias no disponible.', 'campo' => 'alias'), 400);
             } else {
                 $user = new User($data['correo'], '');
                 // codificar la clave
                 $clave = $encoder->encodePassword($data['clave'], $user->getSalt());
                 $filasAfectadas = $usuarioModelo->guardarUsuario("{$data['nombre']} {$data['apellido']}", $data['correo'], $data['alias'], $clave);
                 if ($filasAfectadas == 1) {
                     # Asunto para administrador y usuario
                     $asunto = "Registro de usuario - El Precursor";
                     # Administrador
                     $mensajeAdmin = '<div style="margin:auto;position: relative;background: #FFF;border-top: 2px solid #00C0EF;margin-bottom: 20px;border-radius: 3px;width: 90%;box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);padding: 20px 30px">';
                     $mensajeAdmin .= "<p>Se ha registrado un usuario nuevo en El Precursor.</p>";
                     $mensajeAdmin .= "<p>Detalles del usuario:</p>";
                     $mensajeAdmin .= "<div style=\"background-color: #F0F7FD;margin: 0px 0px 20px;padding: 15px 30px 15px 15px;border-left: 5px solid #D0E3F0;\"><b>Nombre:</b> {$data['nombre']} {$data['apellido']} <a href=\"mailto:{$data['correo']}\">{$data['correo']}</a> </div>";
                     $mensajeAdmin .= '</div>';
                     # Para el usuario registrado
                     $mensajeUsuario = '<div style="margin:auto;position: relative;background: #FFF;border-top: 2px solid #00C0EF;margin-bottom: 20px;border-radius: 3px;width: 90%;box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);padding: 20px 30px">';
                     $mensajeUsuario .= "<p>Usted se ha registrado exitosamente en El Precursor.</p>";
                     $mensajeUsuario .= "<div style=\"background-color: #F0F7FD;margin: 0px 0px 20px;padding: 15px 30px 15px 15px;border-left: 5px solid #D0E3F0;\">";
                     $mensajeUsuario .= "<p>Confirme su registro haciendo click en el siguiente link <a href=\"#\">Link</a>.</p>";
                     $mensajeUsuario .= "</div>";
                     $mensajeUsuario .= '</div>';
                     $sendMail = new SendMail(array('host' => 'mx1.hostinger.es', 'port' => 2525, 'security' => null, 'username' => '*****@*****.**', 'password' => 'elprecursor'), $app['swiftmailer.transport']);
                     $resultAdmin = $sendMail->setMessage($asunto, '*****@*****.**', array('*****@*****.**' => 'El Precursor'), $mensajeAdmin)->send();
                     $resultUsuario = $sendMail->setMessage($asunto, '*****@*****.**', array($data['correo'] => $data['nombre']), $mensajeUsuario)->send();
                     # Transporte SMTP/Gmail con ssl
                     /*$transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
                       ->setUsername("*****@*****.**")
                       ->setPassword("elprecursor");*/
                     if ($resultAdmin && $resultUsuario) {
                         return new JsonResponse('El registro fue exitoso. Se ha enviado un mensaje nuevo a su cuenta de correo para confirmar la cuenta.');
                     } else {
                         $usuarioModelo->eliminar($usuarioModelo->id, true);
                         return new JsonResponse('Ocurrió un error al tratar de enviar el mensaje a su cuenta de correo para confirmar la cuenta. <button type="button" class="btn btn-primary" onclick="$(\'form.form-signup\').submit();">Enviar datos nuevamente</button>', 202);
                     }
                 } else {
                     return new JsonResponse('Ocurrió un problema en el servidor y no se pudo registrar el usuario. Intente más tarde.', 500);
                 }
             }
         }
     } else {
         return new JsonResponse('Methodo no permitido.', 400);
     }
 }