Dealing with GroupType Fields in Notes
Novell Cool Solutions: Tip
By Perry Nuffer
Digg This -
Posted: 25 Apr 2007
A Forum reader recently asked:
"I am creating groups in eDirectory that sync over to the Lotus Notes address book. However, they are created as type "multi-purpose" by default, and I want to create them as "security" type groups (ACLs). How would I do this?"
And here's the response from Perry Nuffer ...
The Group GroupType field is set by default in the NotesDriverShim. The NotesDriverShim has a defect that sets this default GroupType field to "0" (multi-purpose), even when a GroupType field is provided within the XDS add command received by the NotesDriverShim. In other words, if you attempt to create a group in Notes by sending an input XDS document to the NotesDriverShim with an 'add-attr attr-name="GroupType"' and a value of "2" (Access Control List Only), the NotesDriverShim will create the Group, default the GroupType field to 0, then append the GroupType field value of 2. The problem with this: you probably don't want your new group to have two GroupType values (0 and 2).
To work around this defect, you can:
1. Set the GroupType field of the known Group on a specific modify command that may suit your needs, by removing the existing value and applying the value of 2.
2. Set the GroupType field after the Group has been added, by catching its add-association event within the input transformation policy set. See the sample policies below (a & b) for how this can be done.
a. In the Subscriber's creation policy set, insert the following policy:
<?xml version="1.0" encoding="UTF-8"?> <policy> <rule> <description>Attach GroupType field fix-up flag to Group add commands</description> <conditions> <and> <if-class-name op="equal">Group</if-class-name> </and> </conditions> <actions> <do-set-op-property name="fix-up-notes-GroupType-field"> <arg-string> <token-text xml:space="preserve">true</token-text> </arg-string> </do-set-op-property> </actions> </rule> </policy>
b. In the input transformation policy set, insert the following policy:
<?xml version="1.0" encoding="UTF-8"?> <policy> <rule> <description>Check Group's fix-up operation data on add-association</description> <conditions> <and> <if-operation op="equal">add-association</if-operation> <if-op-property name="fix-up-notes-GroupType-field" op="equal">true</if-op-property> </and> </conditions> <actions> <do-set-src-attr-value class-name="Group" name="GroupType"> <arg-association> <token-xpath expression="text()"/> </arg-association> <arg-value type="string"> <token-text>2</token-text> </arg-value> </do-set-src-attr-value> </actions> </rule> </policy>
Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com