diff --git a/app/dashboard/templates/dashboard/index.html b/app/dashboard/templates/dashboard/index.html index d8a5cd92..46898a2f 100644 --- a/app/dashboard/templates/dashboard/index.html +++ b/app/dashboard/templates/dashboard/index.html @@ -327,6 +327,8 @@ {{ contact.website_email }} {{ email_log.created_at | dt }} + {% include 'partials/toggle_contact.html' %} + {% endif %} {% else %} No emails received/sent in the last 14 days. Created {{ alias.created_at | dt }}. diff --git a/app/dashboard/views/index.py b/app/dashboard/views/index.py index 60ca050e..c4374a94 100644 --- a/app/dashboard/views/index.py +++ b/app/dashboard/views/index.py @@ -15,6 +15,7 @@ from app.models import ( AliasGeneratorEnum, User, EmailLog, + Contact, ) @@ -188,3 +189,28 @@ def index(): filter=alias_filter, stats=stats, ) + + +@dashboard_bp.route("/contacts//toggle", methods=["POST"]) +def toggle_contact(contact_id): + """ + Block/Unblock contact + """ + contact = Contact.get(contact_id) + + if not contact or contact.alias.user_id != current_user.id: + return "Forbidden", 403 + + contact.block_forward = not contact.block_forward + Session.commit() + + if contact.block_forward: + toast_msg = f"{contact.website_email} can no longer send emails to {contact.alias.email}" + else: + toast_msg = ( + f"{contact.website_email} can now send emails to {contact.alias.email}" + ) + + return render_template( + "partials/toggle_contact.html", contact=contact, toast_msg=toast_msg + ) diff --git a/templates/partials/toggle_contact.html b/templates/partials/toggle_contact.html new file mode 100644 index 00000000..75ae6fea --- /dev/null +++ b/templates/partials/toggle_contact.html @@ -0,0 +1,15 @@ + + +{% if toast_msg %} + +{% endif %} \ No newline at end of file