cyrus 2.3.x and thunderbird 2.x delete issue

Wolfgang Breyha wbreyha at gmx.net
Thu Apr 19 17:34:23 EDT 2007


Hi!

I had troubles with cyrus 2.3.x and thunderbird 2.x. Thunderbird checks the 
ACLs now and issues a "myrights" and "getacl" command. Since thunderbird 
only checks RFC 2086 flags it disables "DELETE" access since cyrus 2.3.x 
reports the compatibility flags only with "myrights" but not with "getacl".

I think RFC 4314 requires both ...
"When any of the "delete" member rights is set in a list of rights,
    the server MUST also include the "d" right when returning the list in
    a MYRIGHTS or ACL response."

Sample response from cyrus for "MYRIGHTS"...
. myrights INBOX
* MYRIGHTS INBOX lrswipkxtecda
... "cd" included here,

but cyrus fails to return them on "GETACL" eg.:
. getacl INBOX
* ACL INBOX testuser lrswipkxtea

I've tried a quickfix...
--- cyrus-imapd-2.3.8/imap/imapd.c.orig 2007-04-19 22:43:37.000000000 +0200
+++ cyrus-imapd-2.3.8/imap/imapd.c      2007-04-19 22:41:36.000000000 +0200
@@ -5979,6 +5979,7 @@
      int r, access;
      char *acl;
      char *rights, *nextid;
+    char str[ACL_MAXSTR];

      r = (*imapd_namespace.mboxname_tointernal)(&imapd_namespace, name,
                                                imapd_userid, mailboxname);
@@ -6021,7 +6022,7 @@
         prot_printf(imapd_out, " ");
         printastring(acl);
         prot_printf(imapd_out, " ");
-       printastring(rights);
+       printastring(cyrus_acl_masktostr(cyrus_acl_strtomask(rights), str));
         acl = nextid;
      }
      prot_printf(imapd_out, "\r\n");

Works as proof-of-concept with Thunderbird now.

Regards, Wolfgang
-- 
Wolfgang Breyha <wbreyha at gmx.net> | http://www.blafasel.at/
Vienna University Computer Center | Austria


More information about the Info-cyrus mailing list