Novell Home

Dealing with GroupType Fields in Notes

Novell Cool Solutions: Tip
By Perry Nuffer

Digg This - Slashdot This

Posted: 25 Apr 2007
 

Problem

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 ...

Solution

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.

OR

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

© 2014 Novell