[Kolab-devel] [MAJOR UPDATE] KEP #14: Non-conflicting edits of RFC5228/Sieve scripts by multiple editors
Jeroen van Meeuwen (Kolab Systems)
vanmeeuwen at kolabsys.com
Thu Sep 15 10:59:03 CEST 2011
On 15.09.2011 09:06, Georg C. F. Greve wrote:
> On Wednesday 07 September 2011 14.05:44 Jeroen van Meeuwen wrote:
>> - If a 'global' variable namespace were defined and valid, setting
>> 'editor'
>> and 'editor_version' in this namespace (i.e. globally) is negating
>> the
>> possibilty to track which Sieve editor has (last) written out a
>> particular
>> Sieve script.
>
> Well, each script can be read individually. But you may be right that
> global
> is the wrong namespace.
>
I'm not sure a global namespace exists for variables, which would be a
more pressing issue.
>> - Furthermore, I'm afraid perhaps we're storing the editor and
>> version
>> twice; Once in the mandatory and immutable USER script, and once in
>> the
>> user specific script.
>
> But what about scripts that are currently inactive? These would not
> be listed
> in USER, so there would be no information on their editor and its
> version.
>
I said we're storing it twice, which is true. Taking into account the
concept of 'inactive' scripts (all of them but MASTER), or 'disabled'
scripts (include line commented out or not at all referred to in USER),
I think we have a winner to contain the editor and version; the actual
script said editor/version edited (last).
>> Perhaps what we want / need is that USER specifies;
>>
>> set 'editor' 'my left and right hands'
>> set 'editor_version' 'insert your date of birth here'
>>
>> and forget about providing the name and version in a comment in USER
>> /
>> through set commands in the included script?
>
> What if there is more than one editor?
>
This argument, or its potential problems, would equally apply to global
as well as local variable namespaces. Scoping the variables however
would be a completely different story. I'm afraid such concept is 1) not
available and 2) makes said variables hard to check for.
In any case, setting the variables at the beginning of the script does
the same as this would do in bash:
$ a="quite something"; echo "$a"; a="something else entirely"; echo
"$a"
> What if there is one script that is hand crafted to "do something
> magic" and
> just gets activated in the chain, while all the rest is written by a
> specific editor?
>
With your permission, let's reserve "activated" for MASTER, and
"enabled" / "disabled" for individual scripts (we may or may not allow
enabling / disabling).
Most typically, one or more scripts that are hand-crafted does not
contain an editor / version variable statement that we can (safely
assume to) understand, regardless of whether the rest of the scripts is
written by a specific or multiple unspecific editors -assuming they are
KEP compatible which is relevant only to a limited extent.
In any case, such hand-crafted scripts CANNOT be required to include
any format specification. If anything, any script *without* the thing
you can require from a KEP compatible sieve editor could immediately be
considered a manually crafted script.
>> - Additionally;
>>
>> """Manually edited scripts MUST be designated with the value
>> 'MANUAL' for
>> editor and 'NONE' for its version and MUST always be considered
>> read-only by
>> all editors."""
>>
>> KEP #14 compatible users?
>
> Well, if an installation is using this mechanism, users may want a
> way to
> protect their scripts from being edited.
>
The way to protect a script is to specifically exclude it through a
means, not to designate ALL manually edited scripts MUST have values and
MAY NOT be touched by editors.
Also, there's a difference between "automatically editing" that should
be prevented versus the user choosing to be so stupid to select, edit
and upload the script through a web interface.
Additionally, a web interface may allow the upload of a new version of
the script, as well as a plain textarea to manually edit the script
with. Are those considered sieve editors, can there be made an exception
to these rules and if they are not considered sieve editors, such should
be clarified in the KEP (maybe "Guided" or "WYSIWYG" Sieve editors is
what this KEP really applies to).
--
Kind regards,
Jeroen van Meeuwen
--
Senior Engineer, Kolab Systems AG
e: vanmeeuwen at kolabsys.com
t: +44 144 340 9500
m: +44 74 2516 3817
w: http://www.kolabsys.com
pgp: 9342 BF08
More information about the devel
mailing list