[Kolab-devel] Enabling multiple sieve editors on Kolab installation

Georg C. F. Greve greve at kolabsys.com
Tue May 31 20:38:04 CEST 2011


Hi all,

While it may not be totally obvious there are scenarios where multiple sieve 
editors should be used with one Kolab installation, e.g. when Kolab works as 
an integrated part of an existing infrastructure, or in an integrated product, 
such as UCS, which is in fact a real case.

These systems/infrastructures often have management interfaces for some things 
that require sieve, starting from spam/ham handling, over archival, or just 
plain out of office notices. At the same time, users still would like to be able 
to filter mail into folders.

We have had the request before that a customer would like users to set their 
vacation status through the appropriate management system, which should also 
set the email response, but should still be able to set per-folder filters.

Obviously, this means the editors need to ensure that they do not screw up 
each other's edits. 

The way to do this - I think - would be to use the "include" statement in 
sieve and make sure editors do not touch each other's file. 

So in other words, I'm thinking of having a "MASTER.sieve" which essentially 
looks something like like this:

	require ["include"];
	include :global "global-spam.sieve";
	include :personal "management-system.sieve";
	include :personal "my-own-filter.sieve";
	include :personal "some-other-management-system.sieve";

and is always activated.

The management system write the management-system.sieve, the user writes their 
personal sieve. Never the two shall touch each other. 

In more abstract terms, I've been thinking that we should have configurable 
lists for the Kolab Sieve Editors:

	global: an ordered list of global sieve script names
	preuser: an ordered list of personal sieve script names
	postuser: an ordered list of personal sieve script names

and a "magic" name for the including script, e.g. "MASTER.sieve".

The entries on the lists plus the "magic" name should normally be suppressed 
for the user, so remain invisible and not be opened for editing. The rest can 
work as usual, with the user editing the various scripts normally.

"Activating" one of these scripts means that it is placed in the include 
chain, the actually active (in sieve terms) script will always be the magic 
script that has all the includes. This script gets re-written and re-activated 
on every edit / change of activation.

We could of course also "activate" multiple scripts this way.

This would make editing sieve a lot more comfortable, but might also be 
confusing for the user, I guess, and break the expectation as to how sieve 
behaves.

Another question would be where to store the configuration values, in case 
people want client-side sieve editors to be able to hook into this. So the 
thoughts are not yet fully developed, and input would be very much welcome!

Best regards,
Georg


-- 
Georg C. F. Greve
Chief Executive Officer

Kolab Systems AG
Zürich, Switzerland

e: greve at kolabsys.com
t: +41 78 904 43 33
w: http://kolabsys.com

pgp: 86574ACA Georg C. F. Greve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 308 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/devel/attachments/20110531/604bd380/attachment.sig>


More information about the devel mailing list