指定したDBのACLを表示する

Sub Click(Source As Button)
     'データベースの変数の定義
	Dim uiws    As New NotesUIWorkspace
	Dim ret     As     Variant
	Dim session As New NotesSession
	Dim db      As     NotesDatabase
	Dim acl     As     NotesACL
	Dim entry   As     NotesACLEntry
	Dim namae   As     String
	Dim level   As     String
	Dim sbj     As     String
	Dim i       As     Integer
	
     '自分のDBとACLをセット
	ret = uiws.Prompt( 13, "", "" )
	If Isempty( ret ) Then
		Msgbox "データベースは選択されていません。", 0, "データベースの選択"
		Exit Sub
	End If
	Set db = session.GetDatabase( ret(0), ret(1), False )
	If db Is Nothing Then
		Msgbox "データベースがないか、またはアクセス権がありません。", 0 + 16, "データベースの選択"
		Exit Sub
	End If
	Set acl = db.ACL
	
	i =0
	Set entry = acl.GetFirstEntry
     'ACLはDB中にいくつセットされているか分からないので、Do Whileループでentryがなくなるまで繰り返す
	Do While Not (entry Is Nothing )
		i = i + 1
		
		namae = entry.Name
          'ChgEntryLevelは自作関数(entry.Levelは数字で返すのでテキストに変換)
		level = ChgEntryLevel( entry.Level )
		sbj = sbj & Cstr( i ) & "." & namae & " , " & level & Chr$(10)
		
          '次のACLエントリーを取得する
		Set entry = acl.GetNextEntry( entry )
	Loop
	Msgbox sbj, 0, ret(2) & "のACL"
End Sub

Function ChgEntryLevel( level As Integer ) As String
     'ACLのレベルは0~6の7段階
	Select Case level
	Case 0:
		ChgEntryLevel = "[なし]"
	Case 1:
		ChgEntryLevel = "[投稿者]"
	Case 2:
		ChgEntryLevel = "[読者]"
	Case 3:
		ChgEntryLevel = "[作成者]"
	Case 4:
		ChgEntryLevel = "[編集者]"
	Case 5:
		ChgEntryLevel = "[設計者]"
	Case 6:
		ChgEntryLevel = "[管理者]"
	End Select
End Function





指定したNotes DBのACLを取得して画面に表示します。

LotusScript
guylocke
December 28, 2015 9:44 AM
Rating
0





No comments yetLogin first to comment...