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