From: Ken Murchison (no email)
Date: Sat Sep 01 2007 - 14:05:42 EDT
I had some time while waiting for paint to dry, so I whipped up this
quick patch for shared seen state, based on our previous discussions.
It uses a "/vendor/cmu/cyrus-imapd/sharedseen" mailbox annotation,
stored as a mailbox option in the index header, to enable/disable shared
seen state, and stores the shared seen state in "anyone.seen". Note
that this patch is completely untested, although it compiles against
CVS. I also didn't consider replication yet.
Feel free to try this and see if it has the intended behavior. Remember
that the 's' ACL right controls whether a person can change the \Seen
flag on a message.
Boris Lytochkin wrote:
> I need an advice in implementing per-mailbox \Seen flag (or 'shared'
> \Seen flag in per-user basis).
> For now I want to implement it this way:
> 1) add a new mailbox attribute, say 'sharedseen'
> 2) switch path for .seen file in imap/seen_*.c:seen_getpath() if
> 'sharedseen' flag is set on mailbox.
> 3) changes in replication module?
> So, setting 'sharedseen' attribute to mailbox will cause using
> per-mailbox seen-file.
> What are weak points of this implementation?
> Is there more correct way to make per-mailbox \Seen flag?
-- Kenneth Murchison Systems Programmer Project Cyrus Developer/Maintainer Carnegie Mellon University