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

<< Click to Display Table of Contents >>

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

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

ユーザレベルについて

■標準のユーザ管理機能のユーザレベル設定

 

標準のユーザ管理機能では、ユーザレベルはグループの単位で管理します。グループ登録画面では、そのグループに属するユーザの「レベル」を設定することができます。

 

(システム設定画面/ユーザ管理/グループ登録)

p_prj_0295

 

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

 

ログインが行われると、当該ユーザが属するグループのレベルに設定されている値が、PSUserLevelルートプロパティおよび$USERLEVELブラウザタグに格納されます。これらをバインドやスクリプトから参照したり、ユーザレベルを取得すメソッドを呼び出すことにより、例えば、独自のグラフィック画面に配置したボタン操作の可否(ボタンのEnabledプロパティの有効/無効)を、現在ログインしているユーザのレベル値に応じて自動的に切り替える等の制御が行えます。

 

 

 

 

尚、標準プロジェクトはレベルの数値が小さいほど権限「高」となるように実装されています。

 

以降の記述では、以下のようなユーザグループが登録されているものとして説明します。

 

(グループ設定/ユーザ名)

グループ名

レベル

ユーザ名

管理者

1

admin

上級オペレータ

10

senior

一般オペレータ

20

operator

閲覧ユーザ

30

guest

 

 

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

ユーザレベルによるボタン操作の自動切替を行う最も簡単な方法は、対象のボタンの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("Psermission 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