On my current project, I finally have the opportunity to use presets to configure Webtop without performing WDK customizations. I was aware of some of the capabilities of presets from EMC World, but this was the first time I could implement presets against user requirements. One set of requirements was that certain Webtop features should only be available to certain roles. This may sounds trivial except for the fact that the roles were not hierarchical and users may belong to multiple roles.
Lets use an example. Assume there are two roles: submitter and approver.
The submitter role can see the WDK Import action; the approver role can not. Also, the approver can see the WDK Copy and WDK Move; and the submitter can not.
In the WDK customization world, this is easily accomplished by scoping the appropriate WDK component to the role. This does not work in the preset world.
When defining presets, you can select the role that you are configuring a preset for (eg submitter). For the Action rule, you are given a UI to select which WDK actions to exclude. This is fine so far. For the submitter role, I exclude the Copy and Move actions. For the approver role, I exclude the Import action. This implementation of the requirements is relatively straightforward.
The preset engine checks to see if a user belongs to the role. If so, it fires off all the rules associated for the role. The problem is that the preset engine is only looking to see if there is one match. This makes sense if you assume the roles are hierarchical, like the default client capability roles that the Content Server provides (eg consumer, contributor, administrator, etc). This design does not support a user belonging to multiple roles – user is both a submitter and an approver.
In this case, the preset engine either 1) disables Import and enables Copy and Move or 2) enables Import and disables Copy and Move. There is no way to enable Import, Copy and Move.
I realize that Preset is a new feature that came out with D6. Like the first incarnation BOF, there are a few shortcomings with the initial design. Hopefully, EMC has thought about this and will be making Preset into a true rules engine. Until that happens, I can at least still rely on WDK customizations.