<< Click to Display Table of Contents >> マニュアル > 監視システム構築ガイド > プロジェクトの作成 > 独自プロジェクトの作成 > 独自プロジェクトのユーザー管理(ログイン) > 機能解説 > ユーザレベルによるロジックの実装 |
ユーザレベルについて
■ユーザ管理機能を利用しないユーザレベル設定
独自プロジェクトの場合など、標準のユーザ管理機能を利用しない場合は、ユーザレベルの設定はPanel ServerのPanelインターフェースのログイン情報から行います。
(Panelインターフェース/ログイン情報)
レベルには、任意の整数値を設定することができます。
ログイン情報の設定画面では、レベルは個々のユーザに対して付与することも、グループを登録してまとめて管理することもできます。グループの設定は必須ではなく、グループが必要ない場合はユーザのみを登録することでもかまいません。
ログインが行われると、当該ユーザのレベルに設定されている値が、PSUserLevelルートプロパティおよび$USERLEVELブラウザタグに格納されます。尚、グループが設定されていない場合のレベル値は個々のユーザに設定されている値が採用されます。グループが登録されている場合はグループ側に登録されているレベル値の方が優先的に採用されます。
|
独自プロジェクトでは、ユーザレベルをどのように使用するのかは、開発者が自由に決めることができます。
以降の説明では、例として下表のようなユーザ名とレベルが設定されているものとして説明します。
ユーザ名 |
レベル |
admin |
1 |
senior |
10 |
operator |
20 |
guest |
30 |
ユーザレベルによるボタン操作可否の切り替え処理
ユーザレベルによるボタン操作の自動切替を行う最も簡単な方法は、対象のボタンの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("Permission 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以上のユーザ)でログインしてボタンをクリックすると、以下のように表示されます。