[Dovecot] \HasNoChildren versus \Noinferiors in ACL plugin and no CREATE permission
Hi,
using ACL plugin with dovecot 1.1.1 I expected that a Maildir was listed as
* LIST (\NoInferiors) "/" "Foldername"
if "create" (k) permission is not set in ACLs and there doesn't exists any subfolders. But to my surprise, dovecot gives the following output:
* LIST (\HasNoChildren) "/" "Foldername"
Therefore the client (here: SquirrelMail) does not know about the inability to create subfolders and offers "Foldername" in the selection for the parent folder.
If there are exists already subfolders of "Foldername", dovecot has to use \HasChildren and not \NoInferiors. But in other cases \NoInferiors should be the correct answer and not \HasNoChildren. Or am I totally wrong?
Heiko
Heiko Schlichting Freie Universität Berlin heiko@FU-Berlin.DE Zentraleinrichtung für Datenverarbeitung (ZEDAT) Telefon +49 30 838-54327 Fabeckstraße 32 Telefax +49 30 838454327 14195 Berlin
On Wed, 2008-07-23 at 18:47 +0200, Heiko Schlichting wrote:
Hi,
using ACL plugin with dovecot 1.1.1 I expected that a Maildir was listed as
* LIST (\NoInferiors) "/" "Foldername"
if "create" (k) permission is not set in ACLs and there doesn't exists any subfolders. But to my surprise, dovecot gives the following output:
* LIST (\HasNoChildren) "/" "Foldername"
Therefore the client (here: SquirrelMail) does not know about the inability to create subfolders and offers "Foldername" in the selection for the parent folder.
If there are exists already subfolders of "Foldername", dovecot has to use \HasChildren and not \NoInferiors. But in other cases \NoInferiors should be the correct answer and not \HasNoChildren. Or am I totally wrong?
Any idea how other servers do this? I don't think \Noinferiors would be correct, because:
\Noinferiors It is not possible for any child levels of hierarchy to exist under this name; no child levels exist now and none can be created in the future.
Surely it's possible to create mailboxes and it can have child mailboxes in future. It's just that the logged in user doesn't currently have permissions to create such mailbox.
Any idea how other servers do this?
Cyrus at least give
* LIST (\Noinferiors) "/" "INBOX"
but also uses \HasNoChildren for all other folders with read permission only. I noticed the difference between Cyrus and dovecot for INBOX.
I don't think \Noinferiors would be correct, because: ???
\Noinferiors It is not possible for any child levels of hierarchy to exist under this name; no child levels exist now and none can be created in the future.
Surely it's possible to create mailboxes and it can have child mailboxes in future. It's just that the logged in user doesn't currently have permissions to create such mailbox.
Unfortunately "in the future" is not very exact. Administrative operations like changing ACL or even use a different IMAP server software could never be eliminated.
But no create permission in ACL could mean
- "you are not allowed to create a subfolder, but others are" -> \NoChildren
or
- "nobody is allowed to create subfolders" -> \Noinferiors (with administrative changes like changing ACLs excluded here)
I don't know if it is possible to differentiate between these two cases within ACL plugin at this time.
Heiko
Heiko Schlichting Freie Universität Berlin heiko@FU-Berlin.DE Zentraleinrichtung für Datenverarbeitung (ZEDAT) Telefon +49 30 838-54327 Fabeckstraße 32 Telefax +49 30 838454327 14195 Berlin
Let's see what the wiser people have to say: http://mailman1.u.washington.edu/pipermail/imap-protocol/2008-July/000917.ht...
participants (2)
-
Heiko Schlichting
-
Timo Sirainen