Notesドライバv2.1.1以降では、同期対象のLotus Notesデータベース(.nsf)のドキュメント(レコード)で、Lotus Notesのフィールドフラグを設定(追加)したり変更できます(購読者チャネルのみ)。ドライバが適切に設定できるLotus Notesのフィールドフラグには、read-access、read/write-access、names、protectedおよびsummaryがあります。sealおよびsignフラグも有効または無効にできますが、十分な機能は期待できません。
各Notesフィールドフラグは、対応するXMLタグを使用して有効または無効に設定できます。次の表に、このマッピングを示します。
Table B-1 ドライバの属性タグおよび対応するNotesのフィールドフラグ
ドライバの属性フラグ |
Notesのフィールドフラグ |
---|---|
authors-flag |
READ/WRITE-ACCESS |
encrypted-flag |
SEAL |
names-flag |
NAMES |
protected-flag |
PROTECTED |
readers-flag |
READ-ACCESS |
signed-flag |
SIGN |
summary-flag |
SUMMARY |
これらのXMLタグ(ドライバの属性タグ)は、購読者チャネルのXDSドキュメントに、<add-attr>または<modify-attr>要素(attr-name属性の一部)の属性として挿入できます。フィールドフラグは、Lotus Notesのデータベーススキーマおよび設計ルールに従って、適切に使用する必要があります。フィールドでフラグ(またはフラグの組み合わせ)を不適切に使用すると、ドキュメント(レコード)に予期せぬ結果が発生するおそれがあります。
たとえば、任意の属性フラグ(readers-flag、authors-flag)が、そのフラグを処理できないフィールド上に不適切に設定されている場合、Notesアドレス帳のビューから未認証のユーザが削除されることがあります。
encrypted-flagは、ドライバが必要な手順をとらずに正しい証明者を使用した暗号化メソッドを呼び出した場合でも、フィールドに設定されます。そのため、フィールドをSEALとして設定はできますが、コードの中には、適切なメソッドを呼び出してドキュメント内のフィールドを暗号化する必要があるものがあるか、または完全に密封(暗号化)はされません。
次に示すのは、ポリシールールの作成でフィールドフラグを使用している例です。
<rule> <description>Add Shoe Size</description> <conditions> <and> <if-operation op="equal">add</if-operation> </and> </conditions> <actions> <do-add-dest-attr-value class-name="User" name="ShoeSize"> <arg-value type="string"> <token-text xml:space="preserve">9.5</token-text> </arg-value> </do-add-dest-attr-value> </actions> </rule> <rule> <description>Apply ShoeSize Field Flags</description> <conditions> <and> <if-operation op="equal">add</if-operation> <if-class-name mode="nocase" op="equal">User</if-class-name> </and> </conditions> <actions> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="authors-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="readers-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="names-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="protected-flag"> <arg-string> <token-text>true</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="summary-flag"> <arg-string> <token-text>true</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="signed-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../add[@class-name='User']/add-attr[@attr-name='ShoeSize']" name="encrypted-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> </actions> </rule>
次に示すのは、コマンド変換における変更ポリシールールの例です。
<rule> <description>Apply User Telephone Number Field Flags</description> <conditions> <and> <if-class-name mode="nocase" op="equal">User</if-class-name> <if-operation op="equal">modify</if-operation> <if-op-attr name="Telephone Number" op="available"/> </and> </conditions> <actions> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="authors-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="readers-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="names-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="protected-flag"> <arg-string> <token-text>true</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="summary-flag"> <arg-string> <token-text>true</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="signed-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> <do-set-xml-attr expression="../modify[@class-name='User']/modify-attr[@attr-name='Telephone Number']" name="encrypted-flag"> <arg-string> <token-text>false</token-text> </arg-string> </do-set-xml-attr> </actions> </rule>
次に示すのは、Notesドライバシムに送信される前の追加XDSドキュメントの例です。
<nds dtdversion="2.0" ndsversion="8.x"> <source> <product version="2.0.5.51 ">Identity Manager</product> <contact>Novell, Inc.</contact> </source> <input> <add certify-user="true" class-name="Person" create-mail="true" dest-dn="CN=ErnieEngineer/OU=eng/O=novell" drv-param-cert-id="eng-cert-id-file" drv-param-cert-pwd="eng-cert-id-password" event-id="BLACKCAP-NDS#20040915163542#1#1" expire-term="22" internet-password-force-change="false" mail-acl-manager-name="CN=Notes Driver/O=novell" mail-file-inherit-flag="true" no-id-file="false" notes-password-change-interval="0" notes-password-check-setting="PWD_CHK_CHECKPASSWORD" notes-password-grace-period="0" qualified-src-dn="O=DirXML\OU=Notes\OU=Users\OU=eng\CN=ErnieEngineer" roaming-cleanup-period="90" roaming-cleanup-setting="REG_ROAMING_CLEANUP_EVERY_NDAYS" roaming-server="CN=blackcap/O=novell" roaming-subdir="Roaming\ErnieEngineer" roaming-user="false" src-dn="\raspberry\DirXML\Notes\Users\eng\ErnieEngineer" src-entry-id="39853" store-useridfile-in-ab="true" sync-internet-password="true"> <add-attr attr-name="FullName"> <value naming="true" timestamp="1095266118#20" type="string">ErnieEngineer</value> </add-attr> <add-attr attr-name="LastName"> <value timestamp="1095266118#3" type="string">Engineer</value> </add-attr> <add-attr attr-name="FirstName"> <value timestamp="1095266142#1" type="string">Ernie</value> </add-attr> <add-attr attr-name="InternetAddress"> <value>ErnieEngineer@novell.com</value> </add-attr> <add-attr attr-name="ShoeSize" authors-flag="false" encrypted-flag="false" names-flag="false" protected-flag="true" readers-flag="false" signed-flag="false" summary-flag="true"> <value type="string">9.5</value> </add-attr> </add> </input> </nds>
次に示すのは、Notesドライバシムに送信される前の変更XDSドキュメントの例です。
<nds dtdversion="2.0" ndsversion="8.x"> <source> <product version="2.0.5.51 ">Identity Manager</product> <contact>Novell, Inc.</contact> </source> <input> <modify class-name="Person" event-id="BLACKCAP-NDS#20040915164613#1#1" qualified-src-dn="O=DirXML\OU=Notes\OU=Users\OU=eng\CN=ErnieEngineer" src-dn="\raspberry\DirXML\Notes\Users\eng\ErnieEngineer" src-entry-id="39853" tell-adminp-process="tell adminp process all" timestamp="1095267005#2"> <association state="associated">A4C23EE8273577AF87256F10005B2BF9</association> <modify-attr attr-name="OfficePhoneNumber" authors-flag="false" encrypted-flag="false" names-flag="false" protected-flag="true" readers-flag="false" signed-flag="false" summary-flag="true"> <remove-value> <value timestamp="1095266773#1" type="teleNumber">222-2222</value> </remove-value> <add-value> <value timestamp="1095267005#2" type="teleNumber">222-2221</value> </add-value> </modify-attr> </modify> </input> </nds>