Subject: | Should support RFC 4314 |
IMAP-Client doesn't allow the "setacl" command to use the new rights introduced by RFC 4314:
k, x, t and e. While full support for RFC 4314 would be a little more work, the enclosed patch is
the bare minimum to make it work.
Subject: | imap-client.patch |
--- IMAP-Client.pm.orig 2010-04-13 14:33:06.000000000 +0200
+++ /usr/local/ActivePerl-5.10/site/lib/IMAP/Client.pm 2010-04-13 14:50:38.000000000 +0200
@@ -2459,7 +2459,7 @@
push(@acls, qw(l r s w i p c d a 0 1 2 3 4 5 6 7 8 9));
} elsif ($acl eq 'none') {
# we silently accept 'none', which is the same as no options
- } elsif ($acl =~ /^[lrswipcda0123456789]{2,}$/){ # if it looks like a valid permissions string (2 or more),split and use
+ } elsif ($acl =~ /^[lrswipcdakxte0123456789]{2,}$/){ # if it looks like a valid permissions string (2 or more),split and use
push(@acls,split(//,$acl));
} elsif (($acl eq 'l') || ($acl eq 'lookup') || ($acl eq 'list')) { # move on to individual permissions
$acllist{'l'} = 1;
@@ -2477,6 +2477,14 @@
$acllist{'c'} = 1;
} elsif (($acl eq 'd') || ($acl eq 'delete')) {
$acllist{'d'} = 1;
+ } elsif (($acl eq 'k') || ($acl eq 'create mailbox')) {
+ $acllist{'k'} = 1;
+ } elsif (($acl eq 'x') || ($acl eq 'delete mailbox')) {
+ $acllist{'x'} = 1;
+ } elsif (($acl eq 't') || ($acl eq 'delete message')) {
+ $acllist{'t'} = 1;
+ } elsif (($acl eq 'e') || ($acl eq 'expunge')) {
+ $acllist{'e'} = 1;
} elsif (($acl eq 'a') || ($acl eq 'admin') || ($acl eq 'administer')) {
$acllist{'a'} = 1;
} elsif ($acl =~ /^\d$/) {