フォームをユーザ管理のアクセス権限に追加する

<< Click to Display Table of Contents >>

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

フォームをユーザ管理のアクセス権限に追加する

ユーザ管理に独自のフォームの画面表示の可否を追加する

ユーザが作成したグラフィック画面など、プロジェクトに追加した独自のフォームをユーザ管理のアクセス許可に追加したい場合は、フォームの「AuthCandidate」プロパティをTrueに設定します。

 

名称

プロパティ名

内容

ユーザー権限対象の候補とする

AuthCandidate

 

フォームをユーザ管理のグループのアクセス許可に表示させたい場合は、本プロパティをTrueにしてください(チェックを入れる)。尚、本プロパティをTrueにしなかった場合は、当該フォームはアクセス権限に関係なく通常どおり開くことができます。

 

(フォームのプロパティ設定ダイアログ)

p_prj_0379

 

上記をTrueに設定すると、ユーザ管理のグループ登録にあるアクセス許可の一覧に、以下のように「画面表示」の権限が表示されるようになります。

 

(アクセス許可のリストの表示例)

p_prj_0380

 

 

 

独自のアクセス権限をフォームに追加する

アクセス許可にフォームを追加すると「画面表示」の権限がデフォルトで表示されますが、その他の独自の権限をフォームのアクセス権限に定義して追加することもできます。

独自のアクセス権限は、フォームの「AuthParam」プロパティに設定します。

 

名称

プロパティ名

内容

ユーザー権限パラメータ

AuthParam

 

本プロパティは、以下の書式に従って記述します。

 

権限キー名;Desc:ポリシー名

 

この設定は、フォームのプロパティ設定ダイアログのユーザー権限から設定します。又は、プロパティページからAuthParamプロパティを直接編集してもかまいません。尚、権限キーを複数の登録したい場合は、上記の書式を複数行記述することもできます。

 

(フォームのプロパティ設定ダイアログ/ユーザ権限)

p_prj_0381

 

設定ボタンをクリックしてエディタを表示し、パラメータを入力します。

 

例えば、以下のように設定すると、「UserAuth1」という権限キーで、独自権限1というポリシー名の権限が新たに追加されます(下記は設定例です)。

 

UserAuth1;Desc:独自権限1

 

p_prj_0382

 

上記を登録すると、アクセス許可のリストに「独自権限1」の許可設定が表示されるようになります。また、スクリプトから「UserAuth1」という権限キーで権限の有無を取得することができます。

 

(アクセス許可リストに追加された独自権限の例)

p_prj_0383

 

 

 

スクリプトから独自の権限の許可状況を取得するには、「AUTH」ルートメソッドを使用します。

以下に、簡単な処理の実装例を紹介します。

 

■スクリプトの実装例

 

1.標準プロジェクトにフォームを1つ追加します。

 

追加したフォームの以下のプロパティを設定してください。

 

プロパティ名

内容

Title

ユーザーフォーム1

MenuCandidate

True

AuthCandidate

True

AuthParam

UserAuth1;Desc:独自権限1

 

 

システム設定画面のスタイル設定からメニュー編集を開き、メインメニューに「ユーザ―フォーム1」を追加しておきます。

 

p_prj_0389

 

 

続いて、ユーザ管理の設定画面から、管理者、一般ユーザーのアクセス権限を以下のように設定しておきます。

 

(管理者のアクセス権限)

p_prj_0387

 

管理者グループのアクセス許可で、ユーザーフォーム1の「独自権限1」にチェックを入れる。

 

 

 

(一般オペレータのアクセス権限)

p_prj_0388

 

一般オペレータのアクセス許可は、ユーザーフォーム1の「独自権限1」のチェックを外しておく。

 

 

 

 

2.上記で追加したフォームに、ボタンを1つ配置します。

 

p_prj_0384

 

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

 

p_prj_0386

 

4.スクリプトを記述します。

 

権限の有無の確認は、AUTHルートメソッドを使用します。ここでは例として、権限の有無を判定してメッセージボックスに表示する処理を実装します。

 

p_prj_0385

 

(記述内容)

event OnMouseUp(button)

{

 var vFomeName = parent.GetBasedForm();

 

 if(::AUTH(vFomeName & ".UserAuth1") == T) {

         ::OpenMsg("Permission OK");

 } else {

         ::OpenMsg("Permission NG");

 }

}

 

解説:

権限キーは「フォーム名.権限キー名」で参照することができます。上記では、GetBaseFormNameフォームメソッドを呼び出してフォーム名をvFormName変数に取得し、AUTHメソッドの引数に以下のように権限キー名を連結して指定しています。このように記述することで、フォーム名を意識することなくコードを書くことができます。

 

vFomeName & ".UserAuth1"

 

AUTHルートメソッドは、権限の有無をT/Fで返します。

 

5.動作確認

 

プロジェクトを実行し、まずは管理者でログインして、ユーザーフォーム1を表示します。

ボタンをクリックすると、以下のように「Permission OK」と表示されます。

 

p_prj_0390

 

続いて、一般オペレータでログインして同様にボタンをクリックします。

すると、今度は以下のように「Permission NG」と表示されます。

 

p_prj_0391