fix: make email/login_name immutable and add ui sortable account_name #195

This commit is contained in:
rustmailer
2026-04-16 14:50:27 +08:00
parent 82915e76ba
commit 39d8168de5
41 changed files with 595 additions and 506 deletions
+17 -11
View File
@@ -24,7 +24,7 @@ use serde::{Deserialize, Serialize};
use crate::modules::{
account::{
entity::ImapConfig,
migration::{AccountModel, AccountType},
migration::{AccountModel, AccountType, QuotaWindow},
since::{DateSince, RelativeDate},
},
users::UserModel,
@@ -36,15 +36,16 @@ pub struct AccountResp {
pub imap: Option<ImapConfig>,
pub enabled: bool,
pub email: String,
pub name: Option<String>,
pub account_name: Option<String>,
pub login_name: Option<String>,
pub capabilities: Option<Vec<String>>,
pub date_since: Option<DateSince>,
pub date_before: Option<RelativeDate>,
pub folder_limit: Option<u32>,
pub sync_folders: Option<Vec<String>>,
pub download_folders: Option<Vec<String>>,
pub account_type: AccountType,
pub sync_interval_min: Option<i64>,
pub sync_batch_size: Option<u32>,
pub download_interval_min: Option<i64>,
pub download_batch_size: Option<u32>,
pub known_folders: Option<BTreeSet<String>>,
pub created_at: i64,
pub updated_at: i64,
@@ -54,7 +55,9 @@ pub struct AccountResp {
pub use_proxy: Option<u64>,
pub use_dangerous: bool,
pub pgp_key: Option<String>,
pub imap_daily_quota_bytes: Option<u32>,
pub imap_quota_bytes: Option<u64>,
pub imap_quota_window: Option<QuotaWindow>,
pub auto_download_new_mailboxes: Option<bool>,
}
impl AccountResp {
@@ -65,15 +68,16 @@ impl AccountResp {
imap: account.imap,
enabled: account.enabled,
email: account.email,
name: account.name,
account_name: account.account_name,
login_name: account.login_name,
capabilities: account.capabilities,
date_since: account.date_since,
date_before: account.date_before,
folder_limit: account.folder_limit,
sync_folders: account.sync_folders,
download_folders: account.download_folders,
account_type: account.account_type,
sync_interval_min: account.sync_interval_min,
sync_batch_size: account.sync_batch_size,
download_interval_min: account.download_interval_min,
download_batch_size: account.download_batch_size,
known_folders: account.known_folders,
created_at: account.created_at,
updated_at: account.updated_at,
@@ -87,7 +91,9 @@ impl AccountResp {
use_proxy: account.use_proxy,
use_dangerous: account.use_dangerous,
pgp_key: account.pgp_key,
imap_daily_quota_bytes: account.imap_daily_quota_bytes,
imap_quota_bytes: account.imap_quota_bytes,
imap_quota_window: account.imap_quota_window,
auto_download_new_mailboxes: account.auto_download_new_mailboxes,
}
}
}