/** * 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 * @param int $id * * @return RedirectResponse */ public function eliminar(Request $request, Application $app, $id) { $usuarioModelo = new UsuarioModelo($app['db']); $usuario = $usuarioModelo->getPorId($id); if (!empty($usuario)) { $filasAfectadas = $usuarioModelo->eliminar($id); if ($filasAfectadas >= 1) { $app['session']->getFlashBag()->add('info', array('message' => 'Usuario eliminado!')); } } else { $app['session']->getFlashBag()->add('warning', array('message' => '¡Usuario no encontrado!')); } return $app->redirect($app['url_generator']->generate('usuario_list')); }