mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
feat: Add admin commands for managing users' email addresses
This commit is contained in:
@@ -8,8 +8,8 @@ pub trait MessageTemplate: Template {
|
||||
#[derive(Template)]
|
||||
#[template(path = "mail/change_email.txt.j2")]
|
||||
pub struct ChangeEmail<'a> {
|
||||
user_id: &'a UserId,
|
||||
verification_link: &'a str,
|
||||
pub user_id: &'a UserId,
|
||||
pub verification_link: String,
|
||||
}
|
||||
|
||||
impl MessageTemplate for ChangeEmail<'_> {
|
||||
@@ -19,8 +19,8 @@ impl MessageTemplate for ChangeEmail<'_> {
|
||||
#[derive(Template)]
|
||||
#[template(path = "mail/new_account.txt.j2")]
|
||||
pub struct NewAccount<'a> {
|
||||
server_name: &'a str,
|
||||
verification_link: &'a str,
|
||||
pub server_name: &'a str,
|
||||
pub verification_link: String,
|
||||
}
|
||||
|
||||
impl MessageTemplate for NewAccount<'_> {
|
||||
@@ -30,9 +30,9 @@ impl MessageTemplate for NewAccount<'_> {
|
||||
#[derive(Template)]
|
||||
#[template(path = "mail/password_reset.txt.j2")]
|
||||
pub struct PasswordReset<'a> {
|
||||
display_name: &'a str,
|
||||
user_id: &'a UserId,
|
||||
verification_link: &'a str,
|
||||
pub display_name: Option<&'a str>,
|
||||
pub user_id: &'a UserId,
|
||||
pub verification_link: String,
|
||||
}
|
||||
|
||||
impl MessageTemplate for PasswordReset<'_> {
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::sync::Arc;
|
||||
use conduwuit::{Err, Result, err, info};
|
||||
use lettre::{
|
||||
AsyncSmtpTransport, AsyncTransport, Tokio1Executor,
|
||||
message::{Mailbox, MessageBuilder},
|
||||
message::{Mailbox, MessageBuilder, header::ContentType},
|
||||
};
|
||||
|
||||
use crate::{Args, mailer::messages::MessageTemplate};
|
||||
@@ -65,6 +65,11 @@ impl Service {
|
||||
.as_ref()
|
||||
.map(|(sender, transport)| Mailer { sender, transport })
|
||||
}
|
||||
|
||||
pub fn expect_mailer(&self) -> Result<Mailer<'_>> {
|
||||
self.mailer()
|
||||
.ok_or_else(|| err!("SMTP is not configured on this server"))
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Mailer<'a> {
|
||||
@@ -89,6 +94,7 @@ impl Mailer<'_> {
|
||||
.to(recipient)
|
||||
.subject(subject)
|
||||
.date_now()
|
||||
.header(ContentType::TEXT_PLAIN)
|
||||
.body(body)
|
||||
.expect("should have been able to construct message");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user