<< Click to Display Table of Contents >> マニュアル > 監視システム構築ガイド > プロジェクトの作成 > 標準プロジェクトの作成 > 標準プロジェクトのユーザ管理(ログイン) > 機能解説 > ユーザレベルによるロジックの実装 |
ユーザレベルについて
■標準のユーザ管理機能のユーザレベル設定
標準のユーザ管理機能では、ユーザレベルはグループの単位で管理します。グループ登録画面では、そのグループに属するユーザの「レベル」を設定することができます。
(システム設定画面/ユーザ管理/グループ登録)
レベルには、任意の整数値を設定することができます。
ログインが行われると、当該ユーザが属するグループのレベルに設定されている値が、PSUserLevelルートプロパティおよび$USERLEVELブラウザタグに格納されます。これらをバインドやスクリプトから参照したり、ユーザレベルを取得すメソッドを呼び出すことにより、例えば、独自のグラフィック画面に配置したボタン操作の可否(ボタンのEnabledプロパティの有効/無効)を、現在ログインしているユーザのレベル値に応じて自動的に切り替える等の制御が行えます。
|
尚、標準プロジェクトはレベルの数値が小さいほど権限「高」となるように実装されています。
以降の記述では、以下のようなユーザグループが登録されているものとして説明します。
(グループ設定/ユーザ名)
グループ名 |
レベル |
ユーザ名 |
管理者 |
1 |
admin |
上級オペレータ |
10 |
senior |
一般オペレータ |
20 |
operator |
閲覧ユーザ |
30 |
guest |
ユーザレベルによるボタン操作可否の切り替え処理
ユーザレベルによるボタン操作の自動切替を行う最も簡単な方法は、対象のボタンのEnabledプロパティのバインド設定に、$USERLEVELブラウザタグを参照するバインド式を定義する方法です。
ここでは、レベル値が「10以下」の場合のみ(つまり、ユーザが「admin」または「senior」の場合のみ)ボタン操作を有効にする設定例を紹介します。
1.まず、フォームにボタンを配置します。
2.続いて、ボタンのEnabledプロパティのバインドタブを開き、以下のバインド式を設定します。
$USERLEVEL <= 10
|
以上で設定は完了です。
3.動作確認
プロジェクトを実行し、まずはadminでログインします(レベル1)。
ボタンを配置した画面を表示してみると、以下のようにボタン操作が可能な状態で表示されています。
続いて、guestでログインした状態にします(レベル30)。すると、以下のように、ボタンの操作ができない状態になりました。
続いて、seniorでログインを行います(レベル10)。すると、以下のように、ボタンが操作可能になりました。
続いて、operatorでログインを行うと(レベル20)、以下のようにボタン操作が無効になりました。
ユーザレベルをスクリプトから参照する
ユーザレベルはスクリプトから参照することもできます。スクリプトからレベルを取得する方法には、PSUserLevelルートプロパティを直接参照する方法と、AUTHルートメソッドを呼び出す方法があります。
ここでは例として、ボタンのOnMouseUpイベントにスクリプトを記述し、それぞれの実装例を簡単に紹介します。
■PSUserLevelルートプロパティの参照
PSUserLevelルートプロパティを参照した実装例を紹介します。
1.フォームにボタンを配置します。
2.ボタンのスクリプトページを開き、OnMouseUpイベントを追加します。
3.以下のようなスクリプトを記述します。
(記述内容)
event OnMouseUp(button) { if(::PSUserLevel <= 10) { ::OpenMsg("Permission OK"); } else { ::OpenMsg("Psermission NG"); } } |
❖コードはイベントの「 { 」と「 } 」の間に記述します。
❖メッセージボックスの表示文言以外はすべて半角で記述します。
❖行の先頭にある余白を「字下げ」と呼びます。字下げを行うにはTabキーを押します(半角スペースを数個入力してもかまいません。全角スペースは入力しないでください)。
4.動作確認
プロジェクトを実行し、admin又はsenior(つまり、レベル10以下のユーザ)でログインします。
ボタンをクリックすると、以下のメッセージが表示されます。
続いて、operator(つまり、レベル11以上のユーザ)でログインしてボタンをクリックすると、以下のように表示されます。
■AUTHルートメソッドの利用
AUTHルートメソッドを使用した実装例を紹介します。AUTHメソッドの引数に数値を指定して呼び出すと、渡された数値が現在ログイン中のユーザレベル値以下だった場合にTrueを返してくれます。これにより、現在のユーザが目的のユーザレベルを満足しているか否かを判定することができます。
1.フォームにボタンを配置します。
2.ボタンのスクリプトページを開き、OnMouseUpイベントを追加します。
3.以下のようなスクリプトを記述します。
(記述内容)
event OnMouseUp(button) { if(::AUTH(10)) { ::OpenMsg("Permission OK"); } else { ::OpenMsg("Permission NG"); } } |
4.動作確認
プロジェクトを実行し、admin又はsenior(つまり、レベル10以下のユーザ)でログインします。
ボタンをクリックすると、以下のメッセージが表示されます。
続いて、operator(つまり、レベル11以上のユーザ)でログインしてボタンをクリックすると、以下のように表示されます。