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

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

2014年12月3日水曜日

userBeanを使ってみよう

こんにちは。12月の記事は投稿したのに(←いつから月一になった!?とかいうツッコミはいりません)、なんとまた記事を投稿します!

師走で忙しいはずなのですが、ほぼ現実逃避状態なので、問題なしです!(え?問題あり?まぁまぁ)

とにかく・・・今日も記事に入る前ににほんブログ村 IT技術ブログへをクリックしてくださいね。


さて、では今日の話題へと移りましょう。
ずいぶん前の記事になりますが、XPagesでノーツアプリケーションのアクセス権をチェックしてみよう!というのを書きました。
XPagesでNotesDBに対するアクセス権を取得するにはどうすれば良いの?というものです。

このときは、SSJSのNotesDatabaseクラスのgetCurrentAccessLevelやqueryAccessPrivilegesを使って取得するという方法を紹介していました。

この記事に対してはいくつか有難いコメントをいただいていまして、その中に「Kazunori Tatsuki」さまから「Domino 9.0.1 もしくはExtension LibraryにあるuserBeanを使うと更に便利にACL周りの情報が取得できますね。」という情報を提供していただきました。

これは、詳細を調べて皆様にお届けしないと!ということで調べてみました。


Notes/DominoでXPagesを利用する場合、「Extension Library」という拡張モジュール群があります。
こちらをDominoサーバーにインストールすると、各種情報へのアクセスを提供する手段として、「Managed Bean」というものが利用できるようになります。

この「Bean」にはいくつかの種類があるようで、今回説明する「userBean」もその一種です。
これはSSJSもしくはEL(XPages データソース解説 - アクセス方法を参照)からアクセスすることができます。

記述方法は至って簡単。
userBean.プロパティ名称
とするだけ。
例えば、「userBean.commonName」と書きます。
計算結果フィールドコントロールに表示させたい場合、「値」プロパティに「式言語(EL)」として書くか、「JavaScript(サーバーサイド)」として書くかの違いだけです。いずれも記述方法は同じです。
式言語(EL)で記述する場合

SSJSで記述する場合

とても簡単ですね。
ということで、作成したサンプルがこちら。
userBeanのサンプル

ただ単にuserBeanで取得できるものを列挙しただけのものですが、現在のアクセス権なども取得できるので便利なのではないでしょうか?


なお、userBeanで取得できるものは、こちらのページを参照願います。
例えば、ACLの「文書の作成」を取得したい場合は、canCreateDocsなので、「userBean.canCreateDocs」という記述をすればよいことになります。

userBeanは現在のノーツDBに対するユーザのアクセス権情報を提供するものなので、利用するシーンは限られてしまいますが、NotesDatabaseクラスなどで計算するよりもはるかに速いし、記述も簡単なので、是非有効活用してください。

なお、Tatsuki様のコメントにもありますが、Domino 9.0.1であれば、そのまま利用できます。それ以前のバージョンの場合、Extension LibraryをDominoサーバーにインストールする必要がありますので、ご注意ください。


ということで、今日はこの辺で・・・








【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ





0 件のコメント: