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

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

2009年4月21日火曜日

選択したユーザのACL

書いていたようで書いていなかったメソッドの紹介です。

NotesDatabaseクラスのQueryAccessメソッドです。
これは、そのDBにおけるユーザのACLレベルを調査するものです。
ACLにグループが登録されている場合、そのグループに所属しているユーザのレベルも調査できるのが良いところです。
但し、漢字名は認識してくれないようです。なので、別名でなく、本当のユーザ名で使うようにしてください。

サンプルは、ドミノディレクトリからユーザ名を選択して、そのユーザが自分のDBに対して、どのアクセスレベルなのかを返すというものです。

Sub Click(Source As Button)
 Dim uiws As New NotesUIWorkspace
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim entryname As Variant
 Dim acllevel As String
 
 Set db = session.CurrentDatabase
 
 entryname = uiws.PickListStrings( PICKLIST_NAMES, False )
 
 Select Case db.QueryAccess( entryname(0) )
 Case ACLLEVEL_NOACCESS:
  acllevel = "アクセス権なし"
 Case ACLLEVEL_DEPOSITOR:
  acllevel = "投稿者"
 Case ACLLEVEL_READER:
  acllevel = "読者"
 Case ACLLEVEL_AUTHOR:
  acllevel = "作成者"
 Case ACLLEVEL_EDITOR:
  acllevel = "編集者"
 Case ACLLEVEL_DESIGNER:
  acllevel = "設計者"
 Case ACLLEVEL_MANAGER:
  acllevel = "管理者"
 Case Else:
  acllevel = "ACLにありません"
 End Select
 
 Msgbox entryname(0) & "のアクセス権:" & Chr$(9) & acllevel, MB_OK + MB_ICONINFORMATION, "ユーザのACL"
End Sub

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

1 件のコメント:

匿名 さんのコメント...

It was helpful.
thank you.