ユーザレベルによるロジックの実装

<< Click to Display Table of Contents >>

マニュアル > 監視システム構築ガイド > プロジェクトの作成 > 独自プロジェクトの作成 > 独自プロジェクトのユーザー管理(ログイン) > 機能解説 >

ユーザレベルによるロジックの実装

ユーザレベルについて

■ユーザ管理機能を利用しないユーザレベル設定

 

独自プロジェクトの場合など、標準のユーザ管理機能を利用しない場合は、ユーザレベルの設定はPanel ServerのPanelインターフェースのログイン情報から行います。

 

(Panelインターフェース/ログイン情報)

p_security_0009

 

レベルには、任意の整数値を設定することができます。

 

ログイン情報の設定画面では、レベルは個々のユーザに対して付与することも、グループを登録してまとめて管理することもできます。グループの設定は必須ではなく、グループが必要ない場合はユーザのみを登録することでもかまいません。

 

ログインが行われると、当該ユーザのレベルに設定されている値が、PSUserLevelルートプロパティおよび$USERLEVELブラウザタグに格納されます。尚、グループが設定されていない場合のレベル値は個々のユーザに設定されている値が採用されます。グループが登録されている場合はグループ側に登録されているレベル値の方が優先的に採用されます。

 

 

 

 

独自プロジェクトでは、ユーザレベルをどのように使用するのかは、開発者が自由に決めることができます。

 

以降の説明では、例として下表のようなユーザ名とレベルが設定されているものとして説明します。

 

ユーザ名

レベル

admin

1

senior

10

operator

20

guest

30

 

 

ユーザレベルによるボタン操作可否の切り替え処理

ユーザレベルによるボタン操作の自動切替を行う最も簡単な方法は、対象のボタンのEnabledプロパティのバインド設定に、$USERLEVELブラウザタグを参照するバインド式を定義する方法です。

ここでは、レベル値が「10以下」の場合のみ(つまり、ユーザが「admin」または「senior」の場合のみ)ボタン操作を有効にする設定例を紹介します。

 

 

1.まず、フォームにボタンを配置します。

 

p_prj_0296

 

2.続いて、ボタンのEnabledプロパティのバインドタブを開き、以下のバインド式を設定します。

 

p_prj_0297

 

 

 

 

 

 

 

 

 

$USERLEVEL <= 10

 

 

 

以上で設定は完了です。

 

3.動作確認

 

プロジェクトを実行し、まずはadminでログインします(レベル1)。

 

ボタンを配置した画面を表示してみると、以下のようにボタン操作が可能な状態で表示されています。

 

p_prj_0298

 

続いて、guestでログインした状態にします(レベル30)。すると、以下のように、ボタンの操作ができない状態になりました。

 

p_prj_0299

 

続いて、seniorでログインを行います(レベル10)。すると、以下のように、ボタンが操作可能になりました。

 

p_prj_0298

 

続いて、operatorでログインを行うと(レベル20)、以下のようにボタン操作が無効になりました。

 

p_prj_0299

 

 

ユーザレベルをスクリプトから参照する

ユーザレベルはスクリプトから参照することもできます。スクリプトからレベルを取得する方法には、PSUserLevelルートプロパティを直接参照する方法と、AUTHルートメソッドを呼び出す方法があります。

ここでは例として、ボタンのOnMouseUpイベントにスクリプトを記述し、それぞれの実装例を簡単に紹介します。

 

■PSUserLevelルートプロパティの参照

 

PSUserLevelルートプロパティを参照した実装例を紹介します。

 

1.フォームにボタンを配置します。

 

p_prj_0296

 

2.ボタンのスクリプトページを開き、OnMouseUpイベントを追加します。

 

p_prj_0300

 

3.以下のようなスクリプトを記述します。

 

p_prj_0301

 

(記述内容)

event OnMouseUp(button)

{

 if(::PSUserLevel <= 10) {

         ::OpenMsg("Permission OK");

 } else {

         ::OpenMsg("Permission NG");

 }

}

 

コードはイベントの「 { 」と「 } 」の間に記述します。

メッセージボックスの表示文言以外はすべて半角で記述します。

行の先頭にある余白を「字下げ」と呼びます。字下げを行うにはTabキーを押します(半角スペースを数個入力してもかまいません。全角スペースは入力しないでください)。

 

4.動作確認

 

プロジェクトを実行し、admin又はsenior(つまり、レベル10以下のユーザ)でログインします。

 

ボタンをクリックすると、以下のメッセージが表示されます。

 

p_prj_0302

 

続いて、operator(つまり、レベル11以上のユーザ)でログインしてボタンをクリックすると、以下のように表示されます。

 

p_prj_0303

 

 

■AUTHルートメソッドの利用

 

AUTHルートメソッドを使用した実装例を紹介します。AUTHメソッドの引数に数値を指定して呼び出すと、渡された数値が現在ログイン中のユーザレベル値以下だった場合にTrueを返してくれます。これにより、現在のユーザが目的のユーザレベルを満足しているか否かを判定することができます。

 

1.フォームにボタンを配置します。

 

p_prj_0296

 

2.ボタンのスクリプトページを開き、OnMouseUpイベントを追加します。

 

p_prj_0300

 

3.以下のようなスクリプトを記述します。

 

p_prj_0304

 

(記述内容)

event OnMouseUp(button)

{

 if(::AUTH(10)) {

         ::OpenMsg("Permission OK");

 } else {

         ::OpenMsg("Permission NG");

 }

}

 

4.動作確認

 

プロジェクトを実行し、admin又はsenior(つまり、レベル10以下のユーザ)でログインします。

 

ボタンをクリックすると、以下のメッセージが表示されます。

 

p_prj_0302

 

続いて、operator(つまり、レベル11以上のユーザ)でログインしてボタンをクリックすると、以下のように表示されます。

 

p_prj_0303