mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2025-10-24 11:26:05 +08:00
Creating a mailbox in a shared folder results in wrong hierarchy (fixes #1128)
This commit is contained in:
parent
84d3c82179
commit
c394fa689f
22 changed files with 60 additions and 61 deletions
76
Cargo.lock
generated
76
Cargo.lock
generated
|
|
@ -1204,7 +1204,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "common"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"aes-gcm-siv",
|
||||
"ahash 0.8.11",
|
||||
|
|
@ -1218,7 +1218,7 @@ dependencies = [
|
|||
"dns-update",
|
||||
"futures",
|
||||
"hostname 0.4.0",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"idna",
|
||||
"imagesize",
|
||||
"imap_proto",
|
||||
|
|
@ -1799,7 +1799,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "directory"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"argon2",
|
||||
|
|
@ -2046,7 +2046,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "email"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"aes-gcm",
|
||||
|
|
@ -2162,7 +2162,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "event_macro"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
@ -2958,9 +2958,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "httparse"
|
||||
version = "1.9.5"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
|
||||
checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a"
|
||||
|
||||
[[package]]
|
||||
name = "httpdate"
|
||||
|
|
@ -3000,9 +3000,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "1.5.2"
|
||||
version = "1.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0"
|
||||
checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures-channel",
|
||||
|
|
@ -3041,7 +3041,7 @@ checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2"
|
|||
dependencies = [
|
||||
"futures-util",
|
||||
"http 1.2.0",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-util",
|
||||
"rustls 0.23.21",
|
||||
"rustls-pki-types",
|
||||
|
|
@ -3057,7 +3057,7 @@ version = "0.5.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0"
|
||||
dependencies = [
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-util",
|
||||
"pin-project-lite",
|
||||
"tokio",
|
||||
|
|
@ -3075,7 +3075,7 @@ dependencies = [
|
|||
"futures-util",
|
||||
"http 1.2.0",
|
||||
"http-body 1.0.1",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"pin-project-lite",
|
||||
"socket2",
|
||||
"tokio",
|
||||
|
|
@ -3268,7 +3268,7 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285"
|
|||
|
||||
[[package]]
|
||||
name = "imap"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"common",
|
||||
|
|
@ -3294,7 +3294,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "imap_proto"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"chrono",
|
||||
|
|
@ -3351,9 +3351,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "indicatif"
|
||||
version = "0.17.10"
|
||||
version = "0.17.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "aeffd0d77fc9a0bc8ec71b6364089028b48283b534f874178753723ad9241f42"
|
||||
checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235"
|
||||
dependencies = [
|
||||
"console",
|
||||
"number_prefix",
|
||||
|
|
@ -3519,7 +3519,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "jmap"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"aes-gcm",
|
||||
"aes-gcm-siv",
|
||||
|
|
@ -3535,7 +3535,7 @@ dependencies = [
|
|||
"futures-util",
|
||||
"hkdf",
|
||||
"http-body-util",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-util",
|
||||
"jmap_proto",
|
||||
"lz4_flex",
|
||||
|
|
@ -3594,7 +3594,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "jmap_proto"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"fast-float",
|
||||
|
|
@ -3947,9 +3947,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "mail-parser"
|
||||
version = "0.10.1"
|
||||
version = "0.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0d8f64d96d3235bb1390e3d8efd745deb66b85595ce4db431a3ddc0e841a6015"
|
||||
checksum = "187a2b93c4c8c32f552ee06c2d99915e575de2fc7e04b07891c9edfee5b8edd6"
|
||||
dependencies = [
|
||||
"encoding_rs",
|
||||
"hashify",
|
||||
|
|
@ -3975,7 +3975,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "mail-server"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"common",
|
||||
"directory",
|
||||
|
|
@ -3995,7 +3995,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "managesieve"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"bincode",
|
||||
|
|
@ -4273,7 +4273,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "nlp"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"bincode",
|
||||
|
|
@ -4818,7 +4818,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "pop3"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"common",
|
||||
"directory",
|
||||
|
|
@ -4977,7 +4977,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "proc_macros"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
@ -5539,7 +5539,7 @@ dependencies = [
|
|||
"http 1.2.0",
|
||||
"http-body 1.0.1",
|
||||
"http-body-util",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-rustls 0.27.5",
|
||||
"hyper-util",
|
||||
"ipnet",
|
||||
|
|
@ -6476,7 +6476,7 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
|||
|
||||
[[package]]
|
||||
name = "smtp"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"bincode",
|
||||
|
|
@ -6487,7 +6487,7 @@ dependencies = [
|
|||
"email",
|
||||
"form_urlencoded",
|
||||
"http-body-util",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-util",
|
||||
"lru-cache",
|
||||
"mail-auth",
|
||||
|
|
@ -6565,11 +6565,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "spam-filter"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"common",
|
||||
"decancer",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"idna",
|
||||
"infer 0.16.0",
|
||||
"mail-auth",
|
||||
|
|
@ -6619,7 +6619,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
|||
|
||||
[[package]]
|
||||
name = "stalwart-cli"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"console",
|
||||
|
|
@ -6650,7 +6650,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|||
|
||||
[[package]]
|
||||
name = "store"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"arc-swap",
|
||||
|
|
@ -6859,7 +6859,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tests"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"async-trait",
|
||||
|
|
@ -6876,7 +6876,7 @@ dependencies = [
|
|||
"form_urlencoded",
|
||||
"futures",
|
||||
"http-body-util",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-util",
|
||||
"imap",
|
||||
"imap_proto",
|
||||
|
|
@ -7188,7 +7188,7 @@ dependencies = [
|
|||
"http 1.2.0",
|
||||
"http-body 1.0.1",
|
||||
"http-body-util",
|
||||
"hyper 1.5.2",
|
||||
"hyper 1.6.0",
|
||||
"hyper-timeout",
|
||||
"hyper-util",
|
||||
"percent-encoding",
|
||||
|
|
@ -7298,7 +7298,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "trc"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"base64 0.22.1",
|
||||
|
|
@ -7545,7 +7545,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|||
|
||||
[[package]]
|
||||
name = "utils"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
dependencies = [
|
||||
"ahash 0.8.11",
|
||||
"base64 0.22.1",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ authors = ["Stalwart Labs Ltd. <hello@stalw.art>"]
|
|||
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
||||
repository = "https://github.com/stalwartlabs/cli"
|
||||
homepage = "https://github.com/stalwartlabs/cli"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
resolver = "2"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "common"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "directory"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "email"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "imap_proto"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "imap"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -297,8 +297,7 @@ impl<T: SessionStream> SessionData<T> {
|
|||
let mut parent_mailbox_name = None;
|
||||
let (account_id, path) = {
|
||||
let mailboxes = self.mailboxes.lock();
|
||||
let first_path_item = path.first().unwrap();
|
||||
let account = if first_path_item == &self.server.core.jmap.shared_folder {
|
||||
let account = if path.first() == Some(&self.server.core.jmap.shared_folder.as_str()) {
|
||||
// Shared Folders/<username>/<folder>
|
||||
if path.len() < 3 {
|
||||
return Err(trc::ImapEvent::Error
|
||||
|
|
@ -306,7 +305,7 @@ impl<T: SessionStream> SessionData<T> {
|
|||
.details("Mailboxes under root shared folders are not allowed.")
|
||||
.code(ResponseCode::Cannot));
|
||||
}
|
||||
let prefix = Some(format!("{}/{}", first_path_item, path[1]));
|
||||
let prefix = Some(format!("{}/{}", path.remove(0), path.remove(0)));
|
||||
|
||||
// Locate account
|
||||
if let Some(account) = mailboxes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "jmap_proto"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "jmap"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ homepage = "https://stalw.art"
|
|||
keywords = ["imap", "jmap", "smtp", "email", "mail", "server"]
|
||||
categories = ["email"]
|
||||
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "managesieve"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "nlp"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "pop3"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ homepage = "https://stalw.art/smtp"
|
|||
keywords = ["smtp", "email", "mail", "server"]
|
||||
categories = ["email"]
|
||||
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "spam-filter"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "store"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "trc"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "event_macro"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "utils"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "proc_macros"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "tests"
|
||||
version = "0.11.2"
|
||||
version = "0.11.4"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue