IMAP ACL problems
Sauro Saltini <[email protected]> Thu, 13 Dec 2007 22:41:09 +0100
| Newsgroups | gmane.comp.cms.opengroupware.discuss.general |
|---|---|
| Message-ID | <[email protected]> |
I've started to implement SOGo in a test environment as I'm very intrested in using TB / Lightning as "fat" client to relpace Outlook / Exchange duo. I've done a fresh install from sources on a Slackware server and, after some initial problems the whole thing is working like a charm (at least the web interface). My IMAP server (also installed from sources on the same host for testing purposes) was Cyrus 2.2.12 (latest stable) authenticating users on OpenLDAP, SOGo also authenticates via LDAP. I've soon realized, playing with the IMAP ACL's for folder sharing, that SOGo follows RFC 4314 for rights, so some of the ACL righs won't be read/set correctly with my Cyrus-imap version (checkboxes remains always unset) - I've also noticed that even the "inverse" demo site suffers the same bug. Replacing Cyrus-imap with 2.3.9 (testing version) which implements RFC4314 ACL's the permission manager for imap folders worked well, except for the "Remove this folder" and "Erase mails from this folder" checkboxes: - Setting "Remove this folder" and applying will result in "t" acl instead of "x" and reopening the form you have: Remove this folder (x) -> unchecked Erase mails from this folder (t) -> checked - Setting "Erase mails from this folder" and applying will result in an empty acl and reopening the form will show: Erase mails from this folder (t) -> unchecked After some search through the sourcecode I've finally found that the Template file (wox) for the form sets uncorrectly the checkbox names (which was my initial guess, but took me some time to work out as I've never looked at a GNUstep application before!). In UI/Templates/MailerUI/UIxMailUserRightsEditor.wox I've changed the checkbox named: "ObjectEraser" to "FolderEraser" and the one named "MailMessageEraser" to "ObjectEraser" according to the rest of logic in "SOGoMailFolder" (_sogoAclsToImapAcls and _imapAclsToSOGoAcls methods) In the meantime I've found some other inconsistencies between "SOGoPermissions.h" declarations and the "SOGoPermissions.m" assignments: in SOGoPermissions.h the "MailRoles" declared are: extern NSString *SOGoMailRole_SeenKeeper; extern NSString *SOGoMailRole_Writer; extern NSString *SOGoMailRole_Poster; extern NSString *SOGoMailRole_Expunger; extern NSString *SOGoMailRole_Creator; extern NSString *SOGoMailRole_Administrator; instead in SOGoPermissions.m I can see: NSString *SOGoMailRole_SeenKeeper = @"MailSeenKeeper"; NSString *SOGoMailRole_Writer = @"MailWriter"; NSString *SOGoMailRole_Poster = @"MailPoster"; NSString *SOGoMailRole_Expunger = @"MailExpunger"; NSString *SOGoMailRole_Administrator = @"MailAdministrator"; NSString *SOGoMailRole_MessageEraser = @"MailMessageEraser"; i.e no value assigned for SOGoMailRole_Creator and no declaration for SOGoMailRole_MessageEraser (which is one of the problematic roles used in the template file I've changed) I don't know which is the current direction of development regarding the "role names", in fact the whole thing can be patched exactly in the opposite way. The point is only about how you want to call in SOGo the "x" and "t" IMAP rights: x -> MailMessageEraser or ObjectEraser t -> ObjectEraser or FolderEraser I hope this can be useful for someone. I'll go on testing SOGo as I think it can be a great solution. I'm sorry I can't help with the development as I know quite nothing about GNUstep and Objective-C. Sauro Saltini. -- OpenGroupware.org Discussion [email protected] http://mail.opengroupware.org/mailman/listinfo/discuss