diff options
| -rw-r--r-- | imap/imapd.c | 11 | ||||
| -rwxr-xr-x | imap/testsuite | 13 | ||||
| -rw-r--r-- | imap/testsuite.txt | 11 |
3 files changed, 33 insertions, 2 deletions
diff --git a/imap/imapd.c b/imap/imapd.c index ccc1991..0d5cbbb 100644 --- a/imap/imapd.c +++ b/imap/imapd.c @@ -4905,6 +4905,8 @@ int uid=0; if ((did_exist=folder_exists(orig_mailbox)) != 0) { + const char *p; + if (acl_read_folder(&l, mi.homedir, mi.maildir) < 0) @@ -4917,8 +4919,13 @@ int uid=0; maildir_info_destroy(&mi); return (0); } - maildir_acl_delete(mi.homedir, mi.maildir); - /* Clear out fluff */ + + p=strchr(mi.maildir, '.'); + if (p) + { + maildir_acl_delete(mi.homedir, p); + /* Clear out fluff */ + } } if (mdcreate(mailbox)) diff --git a/imap/testsuite b/imap/testsuite index 8ad8140..b8fe504 100755 --- a/imap/testsuite +++ b/imap/testsuite @@ -1170,3 +1170,16 @@ EOF env IMAP_EMPTYTRASH=Trash:2,Trash2:3 ./imapd.testmockpurge confmdtest <<EOF | grep maildir_purge TRASH2 LOGOUT EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 +env IMAP_BROKENUIDV=1 AUTHENTICATED=user1 $IMAPINVOKE confmdtest <<EOF +V001 ACL STORE INBOX user=user2 +w +V002 CREATE INBOX.Folder.Subfolder +V003 ACL STORE INBOX.Folder user=user2 +r +V004 LIST (ACL) "" "INBOX.Folder" +V005 CREATE INBOX.Folder +V006 LIST (ACL) "" "INBOX.Folder" +EOF +ls confmdtest/courierimaphieracl 2>&1 +rm -rf confmdtest diff --git a/imap/testsuite.txt b/imap/testsuite.txt index b1f027b..73190ea 100644 --- a/imap/testsuite.txt +++ b/imap/testsuite.txt @@ -1776,3 +1776,14 @@ 001482 maildir_purge: .Trash2 (259200) 001483 maildir_purge: .Trash (172800) 001484 maildir_purge: .Trash2 (259200) +001485 * PREAUTH Ready.
+001486 * LIST (\Unmarked \HasNoChildren) "." "INBOX" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "w"))))
+001486 V001 OK ACL STORE completed.
+001487 V002 OK "INBOX.Folder.Subfolder" created.
+001488 * LIST (\Noselect \HasChildren) "." "INBOX.Folder" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "rw"))))
+001488 V003 OK ACL STORE completed.
+001489 * LIST (\Noselect \HasChildren) "." "INBOX.Folder" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "rw"))))
+001489 V004 OK LIST completed
+001490 V005 OK "INBOX.Folder" created.
+001491 * LIST (\HasChildren) "." "INBOX.Folder" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "rw"))))
+001491 V006 OK LIST completed
|
