Creating a mailbox in a shared folder results in wrong hierarchy (fixes #1128)

This commit is contained in:
mdecimus
2025-01-28 18:49:36 +01:00
parent 84d3c82179
commit c394fa689f
22 changed files with 60 additions and 61 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "imap"
version = "0.11.2"
version = "0.11.4"
edition = "2021"
resolver = "2"

View File

@@ -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