From 02cf67de4aee7ce010683125e2647cb3c884a234 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 3 Jan 2020 13:12:19 -0500 Subject: [PATCH] Don't send email notification for self replies. - Fixes #401 --- server/src/api/comment.rs | 68 +++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/server/src/api/comment.rs b/server/src/api/comment.rs index 5c3417dd6..62759578b 100644 --- a/server/src/api/comment.rs +++ b/server/src/api/comment.rs @@ -137,43 +137,47 @@ impl Perform for Oper { match data.parent_id { Some(parent_id) => { let parent_comment = Comment::read(&conn, parent_id)?; - let parent_user = User_::read(&conn, parent_comment.creator_id)?; - if parent_user.send_notifications_to_email { - if let Some(comment_reply_email) = parent_user.email { - let subject = &format!( - "{} - Reply from {}", - Settings::get().hostname, - claims.username - ); - let html = &format!( - "

Comment Reply


{} - {}

inbox", - claims.username, comment_form.content, hostname - ); - match send_email(subject, &comment_reply_email, &parent_user.name, html) { - Ok(_o) => _o, - Err(e) => eprintln!("{}", e), - }; + if parent_comment.creator_id != user_id { + let parent_user = User_::read(&conn, parent_comment.creator_id)?; + if parent_user.send_notifications_to_email { + if let Some(comment_reply_email) = parent_user.email { + let subject = &format!( + "{} - Reply from {}", + Settings::get().hostname, + claims.username + ); + let html = &format!( + "

Comment Reply


{} - {}

inbox", + claims.username, comment_form.content, hostname + ); + match send_email(subject, &comment_reply_email, &parent_user.name, html) { + Ok(_o) => _o, + Err(e) => eprintln!("{}", e), + }; + } } } } // Its a post None => { - let parent_user = User_::read(&conn, post.creator_id)?; - if parent_user.send_notifications_to_email { - if let Some(post_reply_email) = parent_user.email { - let subject = &format!( - "{} - Reply from {}", - Settings::get().hostname, - claims.username - ); - let html = &format!( - "

Post Reply


{} - {}

inbox", - claims.username, comment_form.content, hostname - ); - match send_email(subject, &post_reply_email, &parent_user.name, html) { - Ok(_o) => _o, - Err(e) => eprintln!("{}", e), - }; + if post.creator_id != user_id { + let parent_user = User_::read(&conn, post.creator_id)?; + if parent_user.send_notifications_to_email { + if let Some(post_reply_email) = parent_user.email { + let subject = &format!( + "{} - Reply from {}", + Settings::get().hostname, + claims.username + ); + let html = &format!( + "

Post Reply


{} - {}

inbox", + claims.username, comment_form.content, hostname + ); + match send_email(subject, &post_reply_email, &parent_user.name, html) { + Ok(_o) => _o, + Err(e) => eprintln!("{}", e), + }; + } } } }