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

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

2009年4月22日水曜日

保有しているロールのチェック

今回は、保有しているロールのチェックをLotusScriptで記述してみるというものです。

DBの保有ロールを取得する配列の内容を検査するを組み合わせます。

LotusScriptで、ユーザが[Admin]というロールを保有している場合、
ret = Evaluate( {@IsMember("[Admin]";@UserRoles)} )
と、このような書き方をしていたのではないでしょうか?

サンプルは、これを使わずに記述したものです。
どうでしょうか?覚えておくと便利ですよ。

%include "lsconst.lss"
Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim uiws As New NotesUIWorkspace
    Dim entryname As Variant
    Dim retroles As Variant
    
    'カレントDBの取得
    Set db = session.CurrentDatabase
    
    'ユーザの選択
    entryname = uiws.PickListStrings( PICKLIST_NAMES, False )
    
    '選択したユーザのロールを取得する
    retroles = db.QueryAccessRoles( entryname(0) )
    
    '[Admin]が含まれているか?
    If Arraygetindex( retroles, "[Admin]", 0 ) <> 0 Then
        Msgbox "ユーザは[Admin]ロールを保有しています。", MB_OK + MB_ICONINFORMATION, "保有ロールのチェック"
    Else
        Msgbox "ユーザは[Admin]ロールを保有していません。", MB_OK + MB_ICONINFORMATION, "保有ロールのチェック"
    End If
End Sub





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

0 件のコメント: