当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2010年4月14日水曜日

文書の編集可能ユーザをチェックする

9万アクセスを突破しました。目標の10万アクセスまであと一息です。ご声援よろしくお願いします。

本日の記事を読む前に・・・恒例のお願いです。
にほんブログ村 IT技術ブログへ



さて、今日のサンプルは、文書の編集権限を持つユーザ/グループは誰なのか?を調べるというものです。
作成者フィールドは、1つだけではなく複数作成することが可能なため、油断していると訳が分からなくなりがちです。
サンプルは、フォームアクションに設定することで、現在の文書は誰が編集できるのかを画面に表示するという作りにしてあります。
ACLは作成者にしてあるため、作成者フィールドが正しく設定していないと編集ができないため、編集できないぞ?と言う場合は、このサンプルで本当に編集できるようになっているのかを確認すると良いでしょう。

さらに、工夫すれば、どの作成者フィールドに、どの値が設定してあるのかも取得できますね。

ちなみに下図は、サンプルを実行した結果です。


Sub Click(Source As Button)
    Dim uiws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim ret As Variant
    Dim editUser As String
    
    Set uidoc = uiws.CurrentDocument
    Set doc = uidoc.Document
    
    '文書の全アイテムから作成者アイテムの値を取得する
    Forall x In doc.Items
        '作成者のアイテムタイプは1076なので、この時だけ取得する
        If x.Type = 1076 Then
            If Isempty( ret ) Then
                ret = x.Values
            Else
                ret = Arrayappend( ret, x.Values )
            End If
        End If
    End Forall
    ret = Fulltrim( Arrayunique( ret ) )
    
    '取得結果を画面に表示するために、String型に変換する
    Forall x In ret
        If editUser = "" Then
            editUser = x
        Else
            editUser = editUser & Chr$(10) & x
        End If
    End Forall
    
    '結果の表示
    Msgbox editUser, MB_OK + MB_ICONINFORMATION, "文書の編集者"
End Sub



【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします




Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: