def send_message(user_id): user = User.query.get_or_404(user_id) user.permissions.send_message.test(403) form = MessageForm() if form.validate_on_submit(): body = render_template("emails/send_message.html", user=user, subject=form.subject.data, message=form.message.data) subject = _("You have received a message from %(name)s", name=g.user.username) message = Message(subject=subject, body=body, recipients=[user.email]) mail.send(message) flash(_("Your message has been sent to %(name)s", name=user.username), "success") return redirect(url_for("user.posts", username=user.username)) return render_template("user/send_message.html", user=user, form=form)
def contact(): if g.user: form = ContactForm(name=g.user.username, email=g.user.email) else: form = ContactForm() if form.validate_on_submit(): admins = current_app.config.get('ADMINS', []) from_address = "%s <%s>" % (form.name.data, form.email.data) if admins: message = Message(subject=form.subject.data, body=form.message.data, recipients=admins, sender=from_address) mail.send(message) flash(_("Thanks, your message has been sent to us"), "success") return redirect(url_for('frontend.index')) return render_template("contact.html", form=form)
def forgot_password(): form = RecoverPasswordForm() if form.validate_on_submit(): user = User.query.filter_by(email=form.email.data).first() if user: flash( _("Please see your email for instructions on " "how to access your account"), "success") user.activation_key = str(uuid.uuid4()) db.session.commit() body = render_template("emails/recover_password.html", user=user) message = Message(subject=_("Recover your password"), body=body, recipients=[user.email]) mail.send(message) return redirect(url_for("frontend.index")) else: flash(_("Sorry, no user found for that email address"), "error") return render_template("account/recover_password.html", form=form)
def edit(post_id): post = Post.query.get_or_404(post_id) post.permissions.edit.test(403) form = PostForm(obj=post) if form.validate_on_submit(): form.populate_obj(post) db.session.commit() if g.user.id != post.author_id: body = render_template("emails/post_edited.html", post=post) message = Message(subject="Your post has been edited", body=body, recipients=[post.author.email]) mail.send(message) flash(_("The post has been updated"), "success") else: flash(_("Your post has been updated"), "success") return redirect(url_for("post.view", post_id=post_id)) return render_template("post/edit_post.html", post=post, form=form)
def delete(post_id): post = Post.query.get_or_404(post_id) post.permissions.delete.test(403) Comment.query.filter_by(post=post).delete() db.session.delete(post) db.session.commit() if g.user.id != post.author_id: body = render_template("emails/post_deleted.html", post=post) message = Message(subject="Your post has been deleted", body=body, recipients=[post.author.email]) mail.send(message) flash(_("The post has been deleted"), "success") else: flash(_("Your post has been deleted"), "success") return jsonify(success=True, redirect_url=url_for('frontend.index'))
def report_abuse(comment_id): comment = Comment.query.get_or_404(comment_id) form = CommentAbuseForm() if form.validate_on_submit(): admins = current_app.config['ADMINS'] if admins: body = render_template("emails/report_abuse.html", comment=comment, complaint=form.complaint.data) message = Message(subject="Report Abuse", body=body, sender=g.user.email, recipients=admins) mail.send(message) flash(_("Your report has been sent to the admins"), "success") return redirect(comment.url) return render_template("comment/report_abuse.html", comment=comment, form=form)
def forgot_password(): form = RecoverPasswordForm() if form.validate_on_submit(): user = User.query.filter_by(email=form.email.data).first() if user: flash(_("Please see your email for instructions on " "how to access your account"), "success") user.activation_key = str(uuid.uuid4()) db.session.commit() body = render_template("emails/recover_password.html", user=user) message = Message(subject=_("Recover your password"), body=body, sender=current_app.config.get( 'DEFAULT_MAIL_SENDER'), recipients=[user.email]) mail.send(message) return redirect(url_for("frontend.index")) else: flash(_("Sorry, no user found for that email address"), "error") return render_template("recover_password.html", form=form)