From 1563a1aea02dafdaee4e940890302023107adf2a Mon Sep 17 00:00:00 2001 From: traxys Date: Mon, 9 Oct 2023 13:41:13 +0200 Subject: [PATCH] Fix mail_domain from the server --- src/main.rs | 20 +++++++++++------- templates/home.html | 50 ++++++++++++++++++++++++++++----------------- 2 files changed, 44 insertions(+), 26 deletions(-) diff --git a/src/main.rs b/src/main.rs index 2064dfa..6865dfd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -732,10 +732,12 @@ async fn add_mail( User(user): User, Form(add): Form, ) -> Result { + let mail = format!("{}@{}", add.mail, state.mail_domain); + let has_mail = sqlx::query!( "SELECT COUNT(*) FROM emails WHERE id != $1 AND mail = $2", user, - add.mail + mail ) .fetch_one(&state.db) .await? @@ -748,7 +750,7 @@ async fn add_mail( sqlx::query!( "INSERT INTO emails (id, mail, type) VALUES ($1, $2, 'primary') ON CONFLICT DO NOTHING", user, - add.mail + mail ) .execute(&state.db) .await?; @@ -762,10 +764,12 @@ async fn add_list( User(user): User, Form(add): Form, ) -> Result { + let mail = format!("{}@{}", add.mail, state.mail_domain); + let has_mail = sqlx::query!( "SELECT COUNT(*) FROM emails WHERE id != $1 AND mail = $2", user, - add.mail + mail ) .fetch_one(&state.db) .await? @@ -778,7 +782,7 @@ async fn add_list( sqlx::query!( "INSERT INTO emails (id, mail, type) VALUES ($1, $2, 'list') ON CONFLICT DO NOTHING", user, - add.mail + mail ) .execute(&state.db) .await?; @@ -871,6 +875,8 @@ async fn alias_add( User(user): User, Form(alias): Form, ) -> Result { + let alias_email = format!("{}@{}", alias.alias, state.mail_domain); + let mut tx = state.db.begin().await?; let can_use_mail = sqlx::query!( @@ -888,7 +894,7 @@ async fn alias_add( return Ok(UserError::UnauthorizedAliasDest(alias.mail).into()); } - let has_mail = sqlx::query!("SELECT COUNT(*) FROM emails WHERE mail = $1", alias.alias) + let has_mail = sqlx::query!("SELECT COUNT(*) FROM emails WHERE mail = $1", alias_email) .fetch_one(&mut *tx) .await? .count @@ -901,14 +907,14 @@ async fn alias_add( sqlx::query!( "INSERT INTO emails (id, mail, type) VALUES ($1, $2, 'alias') ON CONFLICT DO NOTHING", user, - alias.alias + alias_email ) .execute(&mut *tx) .await?; sqlx::query!( "INSERT INTO alias (alias, type, dest) VALUES ($1, 'alias', $2) ON CONFLICT DO NOTHING", - alias.alias, + alias_email, alias.mail ) .execute(&mut *tx) diff --git a/templates/home.html b/templates/home.html index 1a5cbfa..edd2456 100644 --- a/templates/home.html +++ b/templates/home.html @@ -39,7 +39,7 @@ {% endmacro delete_modal %} -{% macro add_modal(modal_id, add_button, add_text, action, payload, button_classes, input_name, prefill=false) %} +{% macro add_modal(modal_id, add_button, add_text, action, payload, button_classes, input_name, fixed_domain=false) %}