mirror of
https://github.com/chatmail/core.git
synced 2026-05-17 05:46:30 +03:00
feat: default bcc_self to 0 for new accounts
This commit is contained in:
@@ -35,7 +35,7 @@ class TestOfflineAccountBasic:
|
|||||||
d = ac1.get_info()
|
d = ac1.get_info()
|
||||||
assert d["arch"]
|
assert d["arch"]
|
||||||
assert d["number_of_chats"] == "0"
|
assert d["number_of_chats"] == "0"
|
||||||
assert d["bcc_self"] == "1"
|
assert d["bcc_self"] == "0"
|
||||||
|
|
||||||
def test_is_not_configured(self, acfactory):
|
def test_is_not_configured(self, acfactory):
|
||||||
ac1 = acfactory.get_unconfigured_account()
|
ac1 = acfactory.get_unconfigured_account()
|
||||||
@@ -69,7 +69,7 @@ class TestOfflineAccountBasic:
|
|||||||
def test_has_bccself(self, acfactory):
|
def test_has_bccself(self, acfactory):
|
||||||
ac1 = acfactory.get_unconfigured_account()
|
ac1 = acfactory.get_unconfigured_account()
|
||||||
assert "bcc_self" in ac1.get_config("sys.config_keys").split()
|
assert "bcc_self" in ac1.get_config("sys.config_keys").split()
|
||||||
assert ac1.get_config("bcc_self") == "1"
|
assert ac1.get_config("bcc_self") == "0"
|
||||||
|
|
||||||
def test_selfcontact_if_unconfigured(self, acfactory):
|
def test_selfcontact_if_unconfigured(self, acfactory):
|
||||||
ac1 = acfactory.get_unconfigured_account()
|
ac1 = acfactory.get_unconfigured_account()
|
||||||
|
|||||||
@@ -144,11 +144,11 @@ pub enum Config {
|
|||||||
|
|
||||||
/// Send BCC copy to self.
|
/// Send BCC copy to self.
|
||||||
///
|
///
|
||||||
/// Should be enabled for multidevice setups.
|
/// Should be enabled for multi-device setups.
|
||||||
/// Default is 0 for chatmail accounts, 1 otherwise.
|
|
||||||
///
|
///
|
||||||
/// This is automatically enabled when importing/exporting a backup,
|
/// This is automatically enabled when importing/exporting a backup,
|
||||||
/// setting up a second device, or receiving a sync message.
|
/// setting up a second device, or receiving a sync message.
|
||||||
|
#[strum(props(default = "0"))]
|
||||||
BccSelf,
|
BccSelf,
|
||||||
|
|
||||||
/// True if Message Delivery Notifications (read receipts) should
|
/// True if Message Delivery Notifications (read receipts) should
|
||||||
@@ -523,10 +523,6 @@ impl Context {
|
|||||||
|
|
||||||
// Default values
|
// Default values
|
||||||
let val = match key {
|
let val = match key {
|
||||||
Config::BccSelf => match Box::pin(self.is_chatmail()).await? {
|
|
||||||
false => Some("1".to_string()),
|
|
||||||
true => Some("0".to_string()),
|
|
||||||
},
|
|
||||||
Config::ConfiguredInboxFolder => Some("INBOX".to_string()),
|
Config::ConfiguredInboxFolder => Some("INBOX".to_string()),
|
||||||
Config::DeleteServerAfter => {
|
Config::DeleteServerAfter => {
|
||||||
match !Box::pin(self.get_config_bool(Config::BccSelf)).await?
|
match !Box::pin(self.get_config_bool(Config::BccSelf)).await?
|
||||||
|
|||||||
@@ -979,11 +979,10 @@ mod tests {
|
|||||||
|
|
||||||
let context1 = &TestContext::new_alice().await;
|
let context1 = &TestContext::new_alice().await;
|
||||||
|
|
||||||
|
// `bcc_self` is enabled by default for test contexts. Unset it.
|
||||||
|
context1.set_config(Config::BccSelf, None).await?;
|
||||||
|
|
||||||
// Check that the settings are displayed correctly.
|
// Check that the settings are displayed correctly.
|
||||||
assert_eq!(
|
|
||||||
context1.get_config(Config::BccSelf).await?,
|
|
||||||
Some("1".to_string())
|
|
||||||
);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
context1.get_config(Config::DeleteServerAfter).await?,
|
context1.get_config(Config::DeleteServerAfter).await?,
|
||||||
Some("0".to_string())
|
Some("0".to_string())
|
||||||
|
|||||||
@@ -1363,6 +1363,46 @@ CREATE INDEX gossip_timestamp_index ON gossip_timestamp (chat_id, fingerprint);
|
|||||||
.await?;
|
.await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inc_and_check(&mut migration_version, 139)?;
|
||||||
|
if dbversion < migration_version {
|
||||||
|
sql.execute_migration_transaction(
|
||||||
|
|transaction| {
|
||||||
|
if exists_before_update {
|
||||||
|
let is_chatmail = transaction
|
||||||
|
.query_row(
|
||||||
|
"SELECT value FROM config WHERE keyname='is_chatmail'",
|
||||||
|
(),
|
||||||
|
|row| {
|
||||||
|
let value: String = row.get(0)?;
|
||||||
|
Ok(value)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.optional()?
|
||||||
|
.as_deref()
|
||||||
|
== Some("1");
|
||||||
|
|
||||||
|
// For non-chatmail accounts
|
||||||
|
// default "bcc_self" was "1".
|
||||||
|
// If it is not in the database,
|
||||||
|
// save the old default explicity
|
||||||
|
// as the new default is "0"
|
||||||
|
// for all accounts.
|
||||||
|
if !is_chatmail {
|
||||||
|
transaction.execute(
|
||||||
|
"INSERT OR IGNORE
|
||||||
|
INTO config (keyname, value)
|
||||||
|
VALUES (?, ?)",
|
||||||
|
("bcc_self", "1"),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
},
|
||||||
|
migration_version,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
|
|
||||||
let new_version = sql
|
let new_version = sql
|
||||||
.get_raw_config_int(VERSION_CFG)
|
.get_raw_config_int(VERSION_CFG)
|
||||||
.await?
|
.await?
|
||||||
|
|||||||
@@ -657,14 +657,11 @@ mod tests {
|
|||||||
alice1.set_config_bool(Config::SyncMsgs, true).await?;
|
alice1.set_config_bool(Config::SyncMsgs, true).await?;
|
||||||
alice2.set_config_bool(Config::SyncMsgs, true).await?;
|
alice2.set_config_bool(Config::SyncMsgs, true).await?;
|
||||||
|
|
||||||
if chatmail {
|
alice1.set_config_bool(Config::IsChatmail, chatmail).await?;
|
||||||
alice1.set_config_bool(Config::IsChatmail, true).await?;
|
alice2.set_config_bool(Config::IsChatmail, chatmail).await?;
|
||||||
alice2.set_config_bool(Config::IsChatmail, true).await?;
|
|
||||||
} else {
|
|
||||||
alice2.set_config_bool(Config::BccSelf, false).await?;
|
|
||||||
}
|
|
||||||
|
|
||||||
alice1.set_config_bool(Config::BccSelf, true).await?;
|
alice1.set_config_bool(Config::BccSelf, true).await?;
|
||||||
|
alice2.set_config_bool(Config::BccSelf, false).await?;
|
||||||
|
|
||||||
let sent_msg = if sync_message_sent {
|
let sent_msg = if sync_message_sent {
|
||||||
alice1
|
alice1
|
||||||
|
|||||||
@@ -549,6 +549,7 @@ impl TestContext {
|
|||||||
ctx.set_config(Config::SkipStartMessages, Some("1"))
|
ctx.set_config(Config::SkipStartMessages, Some("1"))
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
ctx.set_config(Config::BccSelf, Some("1")).await.unwrap();
|
||||||
ctx.set_config(Config::SyncMsgs, Some("0")).await.unwrap();
|
ctx.set_config(Config::SyncMsgs, Some("0")).await.unwrap();
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
|
|||||||
Reference in New Issue
Block a user