Only send summary email if order has been placed by user itself

This commit is contained in:
Yohan Boniface 2019-03-24 18:46:11 +01:00
parent fba14dc45a
commit b68d75b5a0

View file

@ -225,10 +225,9 @@ async def view_delivery(request, response, id):
async def place_order(request, response, id): async def place_order(request, response, id):
delivery = Delivery.load(id) delivery = Delivery.load(id)
email = request.query.get("email", None) email = request.query.get("email", None)
if not email: user = session.user.get(None)
user = session.user.get(None) if not email and user:
if user: email = user.email
email = user.email
if not email: if not email:
response.message("Impossible de comprendre pour qui passer commande…", "error") response.message("Impossible de comprendre pour qui passer commande…", "error")
response.redirect = request.path response.redirect = request.path
@ -244,19 +243,21 @@ async def place_order(request, response, id):
delivery.orders = {} delivery.orders = {}
delivery.orders[email] = order delivery.orders[email] = order
delivery.persist() delivery.persist()
html = env.get_template("emails/order_summary.html").render( if user and user.email == email:
order=order, delivery=delivery # Only send email if order has been placed by the user itself.
) html = env.get_template("emails/order_summary.html").render(
txt = env.get_template("emails/order_summary.txt").render( order=order, delivery=delivery
order=order, delivery=delivery )
) txt = env.get_template("emails/order_summary.txt").render(
emails.send( order=order, delivery=delivery
email, )
f"Copanier: résumé de la commande {delivery.producer}", emails.send(
body=txt, email,
html=html, f"Copanier: résumé de la commande {delivery.producer}",
) body=txt,
response.message("Jour de fête! Votre commande a bien été prise en compte!") html=html,
)
response.message("La commande a bien été prise en compte!")
response.redirect = request.path response.redirect = request.path
else: else:
order = delivery.orders.get(email) or Order() order = delivery.orders.get(email) or Order()