Merge pull request 'Fork/brand lowercase' (#23) from fork/brand-lowercase into main
Reviewed-on: #23
This commit was merged in pull request #23.
This commit is contained in:
@@ -105,7 +105,7 @@ pub fn first_party_clients(
|
||||
if let Some(url) = admin_url.map(|url| url.trim().trim_end_matches('/')).filter(|url| !url.is_empty()) {
|
||||
clients.push(FirstPartyClient {
|
||||
client_id: ADMIN_CLIENT_ID.to_string(),
|
||||
description: "INBUXA Admin".to_string(),
|
||||
description: "inbuxa Admin".to_string(),
|
||||
redirect_uris: vec![format!("{url}/oauth/callback")],
|
||||
secret: None,
|
||||
});
|
||||
@@ -356,7 +356,7 @@ mod tests {
|
||||
|
||||
fn web_interface() -> Application {
|
||||
Application {
|
||||
description: "INBUXA Web Interface".to_string(),
|
||||
description: "inbuxa Web Interface".to_string(),
|
||||
enabled: true,
|
||||
url_prefix: Map::new(vec!["/admin".into(), "/account".into()]),
|
||||
..Default::default()
|
||||
@@ -370,7 +370,7 @@ mod tests {
|
||||
clients,
|
||||
vec![FirstPartyClient {
|
||||
client_id: WEB_INTERFACE_CLIENT_ID.to_string(),
|
||||
description: "INBUXA Web Interface (served by this server)".to_string(),
|
||||
description: "inbuxa Web Interface (served by this server)".to_string(),
|
||||
redirect_uris: vec![
|
||||
"https://mail.example.org/admin/oauth/callback".to_string(),
|
||||
"https://mail.example.org/account/oauth/callback".to_string(),
|
||||
|
||||
@@ -299,28 +299,28 @@ impl LegacyProtocol {
|
||||
pub fn refusal(&self, scope: RefusalScope) -> &'static str {
|
||||
match (scope, self) {
|
||||
(RefusalScope::Server, LegacyProtocol::Imap) => {
|
||||
"This server allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"This server allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
}
|
||||
(RefusalScope::Server, LegacyProtocol::Pop3) => {
|
||||
"[AUTH] This server allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"[AUTH] This server allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
}
|
||||
(RefusalScope::Server, LegacyProtocol::ManageSieve) => {
|
||||
"This server allows only INBUXA webmail and JMAP apps."
|
||||
"This server allows only inbuxa webmail and JMAP apps."
|
||||
}
|
||||
(RefusalScope::Server, LegacyProtocol::Submission) => {
|
||||
"535 5.7.0 This server allows only INBUXA webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
"535 5.7.0 This server allows only inbuxa webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
}
|
||||
(RefusalScope::Tenant(_), LegacyProtocol::Imap) => {
|
||||
"Your organization allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"Your organization allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
}
|
||||
(RefusalScope::Tenant(_), LegacyProtocol::Pop3) => {
|
||||
"[AUTH] Your organization allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"[AUTH] Your organization allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
}
|
||||
(RefusalScope::Tenant(_), LegacyProtocol::ManageSieve) => {
|
||||
"Your organization allows only INBUXA webmail and JMAP apps."
|
||||
"Your organization allows only inbuxa webmail and JMAP apps."
|
||||
}
|
||||
(RefusalScope::Tenant(_), LegacyProtocol::Submission) => {
|
||||
"535 5.7.0 Your organization allows only INBUXA webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
"535 5.7.0 Your organization allows only inbuxa webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -541,7 +541,7 @@ mod tests {
|
||||
let server = RefusalScope::Server;
|
||||
assert_eq!(
|
||||
LegacyProtocol::Imap.refusal(server),
|
||||
"This server allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"This server allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
);
|
||||
assert!(
|
||||
LegacyProtocol::Pop3
|
||||
@@ -550,11 +550,11 @@ mod tests {
|
||||
);
|
||||
assert_eq!(
|
||||
LegacyProtocol::ManageSieve.refusal(server),
|
||||
"This server allows only INBUXA webmail and JMAP apps."
|
||||
"This server allows only inbuxa webmail and JMAP apps."
|
||||
);
|
||||
assert_eq!(
|
||||
LegacyProtocol::Submission.refusal(server),
|
||||
"535 5.7.0 This server allows only INBUXA webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
"535 5.7.0 This server allows only inbuxa webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -564,19 +564,19 @@ mod tests {
|
||||
let tenant = RefusalScope::Tenant(7);
|
||||
assert_eq!(
|
||||
LegacyProtocol::Imap.refusal(tenant),
|
||||
"Your organization allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"Your organization allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
);
|
||||
assert_eq!(
|
||||
LegacyProtocol::Pop3.refusal(tenant),
|
||||
"[AUTH] Your organization allows only INBUXA webmail and JMAP apps. This mail app can't sign in."
|
||||
"[AUTH] Your organization allows only inbuxa webmail and JMAP apps. This mail app can't sign in."
|
||||
);
|
||||
assert_eq!(
|
||||
LegacyProtocol::ManageSieve.refusal(tenant),
|
||||
"Your organization allows only INBUXA webmail and JMAP apps."
|
||||
"Your organization allows only inbuxa webmail and JMAP apps."
|
||||
);
|
||||
assert_eq!(
|
||||
LegacyProtocol::Submission.refusal(tenant),
|
||||
"535 5.7.0 Your organization allows only INBUXA webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
"535 5.7.0 Your organization allows only inbuxa webmail and JMAP apps. This mail app can't send.\r\n"
|
||||
);
|
||||
let err = LegacyProtocol::Imap.refused(tenant, Some("example.org".into()));
|
||||
assert_eq!(err.value_as_str(trc::Key::Policy), Some("tenant"));
|
||||
|
||||
@@ -40,7 +40,7 @@ impl OpenIdDirectory {
|
||||
|
||||
pub async fn new(config: OidcConfig) -> Result<Self, OidcError> {
|
||||
let http = utils::http::http_client_builder(false)
|
||||
.user_agent("INBUXA/1.0") // types::brand!(); this crate does not depend on types
|
||||
.user_agent("inbuxa/1.0") // types::brand!(); this crate does not depend on types
|
||||
.timeout(Duration::from_secs(30))
|
||||
.build()
|
||||
.map_err(|e| OidcError::Network(format!("HTTP client build failed: {e}")))?;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "inbuxa-features"
|
||||
description = "INBUXA's rebuilt features: behavior Stalwart ships only in its Enterprise Edition, rebuilt clean-room"
|
||||
description = "inbuxa's rebuilt features: behavior Stalwart ships only in its Enterprise Edition, rebuilt clean-room"
|
||||
license = "AGPL-3.0-only"
|
||||
version = "0.16.22"
|
||||
edition = "2024"
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
[package]
|
||||
name = "inbuxa"
|
||||
description = "INBUXA Mail and Collaboration Server, a fork of Stalwart"
|
||||
description = "inbuxa mail and collaboration server, a fork of Stalwart"
|
||||
authors = [ "Stalwart Labs LLC <[email protected]>"]
|
||||
homepage = "https://inbuxa.org"
|
||||
keywords = ["imap", "jmap", "smtp", "email", "mail", "webdav", "server"]
|
||||
categories = ["email"]
|
||||
# Upstream offers AGPL-3.0-only OR LicenseRef-SEL; INBUXA takes the AGPL only.
|
||||
# Upstream offers AGPL-3.0-only OR LicenseRef-SEL; inbuxa takes the AGPL only.
|
||||
license = "AGPL-3.0-only"
|
||||
version = "0.16.23"
|
||||
edition = "2024"
|
||||
|
||||
@@ -732,7 +732,7 @@ impl Pickle for AddressBook {
|
||||
impl Default for AddressBook {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
default_display_name: Some("INBUXA Address Book".to_string()),
|
||||
default_display_name: Some("inbuxa Address Book".to_string()),
|
||||
default_href_name: Some("default".to_string()),
|
||||
max_v_card_size: 524288u64,
|
||||
max_address_books: Some(250u64),
|
||||
@@ -4597,7 +4597,7 @@ impl Pickle for Calendar {
|
||||
impl Default for Calendar {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
default_display_name: Some("INBUXA Calendar".to_string()),
|
||||
default_display_name: Some("inbuxa Calendar".to_string()),
|
||||
default_href_name: Some("default".to_string()),
|
||||
max_attendees: 20u64,
|
||||
max_recurrence_expansions: 3000u64,
|
||||
@@ -4734,7 +4734,7 @@ impl Default for CalendarAlarm {
|
||||
allow_external_rcpts: false,
|
||||
enable: true,
|
||||
from_email: Default::default(),
|
||||
from_name: "INBUXA Calendar".to_string(),
|
||||
from_name: "inbuxa Calendar".to_string(),
|
||||
min_trigger_interval: Duration::from_millis(3600000),
|
||||
template: Default::default(),
|
||||
}
|
||||
@@ -28310,7 +28310,7 @@ impl MtaStageConnect {
|
||||
ExpressionContext {
|
||||
expr: &self.smtp_greeting,
|
||||
default: Some(Expression {
|
||||
else_: "system('hostname') + ' INBUXA ESMTP at your service'".to_string(),
|
||||
else_: "system('hostname') + ' inbuxa ESMTP at your service'".to_string(),
|
||||
..Default::default()
|
||||
}),
|
||||
property: Property::SmtpGreeting,
|
||||
@@ -28374,7 +28374,7 @@ impl Default for MtaStageConnect {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
smtp_greeting: Expression {
|
||||
else_: "system('hostname') + ' INBUXA ESMTP at your service'".to_string(),
|
||||
else_: "system('hostname') + ' inbuxa ESMTP at your service'".to_string(),
|
||||
..Default::default()
|
||||
},
|
||||
hostname: Expression {
|
||||
|
||||
@@ -205,7 +205,7 @@ impl ScimResponse {
|
||||
if error.status == 401 {
|
||||
response.headers.push((
|
||||
"WWW-Authenticate",
|
||||
"Bearer realm=\"INBUXA SCIM\"".to_string(),
|
||||
"Bearer realm=\"inbuxa SCIM\"".to_string(),
|
||||
));
|
||||
}
|
||||
response
|
||||
|
||||
@@ -47,7 +47,7 @@ impl RegistryStore {
|
||||
.collect::<String>();
|
||||
eprintln!();
|
||||
eprintln!("════════════════════════════════════════════════════════════");
|
||||
eprintln!("🔑 INBUXA bootstrap mode - temporary administrator account");
|
||||
eprintln!("🔑 inbuxa bootstrap mode - temporary administrator account");
|
||||
eprintln!();
|
||||
eprintln!(" username: admin");
|
||||
eprintln!(" password: {password}");
|
||||
|
||||
@@ -3729,8 +3729,8 @@ impl EventType {
|
||||
EventType::Security(SecurityEvent::LegacyProtocolsChanged) => {
|
||||
"Legacy mail protocols switch changed"
|
||||
}
|
||||
EventType::Server(ServerEvent::Startup) => "Starting INBUXA Server",
|
||||
EventType::Server(ServerEvent::Shutdown) => "Shutting down INBUXA Server",
|
||||
EventType::Server(ServerEvent::Startup) => "Starting inbuxa Server",
|
||||
EventType::Server(ServerEvent::Shutdown) => "Shutting down inbuxa Server",
|
||||
EventType::Server(ServerEvent::StartupError) => "Server startup error",
|
||||
EventType::Server(ServerEvent::ThreadError) => "Server thread error",
|
||||
EventType::Server(ServerEvent::Licensing) => "Server licensing event",
|
||||
@@ -3983,7 +3983,7 @@ impl EventType {
|
||||
EventType::Auth(AuthEvent::ClientRegistration) => "Authentication error",
|
||||
// inbuxa: legacy-protocols LP-6
|
||||
EventType::Auth(AuthEvent::LegacyProtocolRefused) => {
|
||||
"This server allows only INBUXA webmail and JMAP apps"
|
||||
"This server allows only inbuxa webmail and JMAP apps"
|
||||
}
|
||||
EventType::Auth(AuthEvent::Error) => "Authentication error",
|
||||
EventType::Auth(AuthEvent::CredentialExpired) => "Credential expired",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#[macro_export]
|
||||
macro_rules! brand {
|
||||
() => {
|
||||
"INBUXA"
|
||||
"inbuxa"
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ pub fn build_http_client(
|
||||
allow_invalid_certs: bool,
|
||||
) -> Result<Client, String> {
|
||||
let mut headers = build_http_headers(raw_headers, username, password, token, content_type)?;
|
||||
headers.insert(USER_AGENT, "INBUXA/1.0.0".parse().unwrap()); // types::brand!(); utils does not depend on types
|
||||
headers.insert(USER_AGENT, "inbuxa/1.0.0".parse().unwrap()); // types::brand!(); utils does not depend on types
|
||||
|
||||
match http_client_builder(allow_invalid_certs)
|
||||
.connect_timeout(timeout)
|
||||
|
||||
Reference in New Issue
Block a user