/** * 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); } }
/** * @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); } } }