<< Click to Display Table of Contents >> マニュアル > 監視システム構築ガイド > プロジェクトの作成 > 標準プロジェクトの作成 > 標準プロジェクトのユーザ管理(ログイン) > 機能解説 > フォームをユーザ管理のアクセス権限に追加する |
ユーザ管理に独自のフォームの画面表示の可否を追加する
ユーザが作成したグラフィック画面など、プロジェクトに追加した独自のフォームをユーザ管理のアクセス許可に追加したい場合は、フォームの「AuthCandidate」プロパティをTrueに設定します。
名称 |
プロパティ名 |
内容 |
ユーザー権限対象の候補とする |
AuthCandidate
|
フォームをユーザ管理のグループのアクセス許可に表示させたい場合は、本プロパティをTrueにしてください(チェックを入れる)。尚、本プロパティをTrueにしなかった場合は、当該フォームはアクセス権限に関係なく通常どおり開くことができます。
(フォームのプロパティ設定ダイアログ)
上記をTrueに設定すると、ユーザ管理のグループ登録にあるアクセス許可の一覧に、以下のように「画面表示」の権限が表示されるようになります。
(アクセス許可のリストの表示例)
|
独自のアクセス権限をフォームに追加する
アクセス許可にフォームを追加すると「画面表示」の権限がデフォルトで表示されますが、その他の独自の権限をフォームのアクセス権限に定義して追加することもできます。
独自のアクセス権限は、フォームの「AuthParam」プロパティに設定します。
名称 |
プロパティ名 |
内容 |
ユーザー権限パラメータ |
AuthParam
|
本プロパティは、以下の書式に従って記述します。
権限キー名;Desc:ポリシー名
この設定は、フォームのプロパティ設定ダイアログのユーザー権限から設定します。又は、プロパティページからAuthParamプロパティを直接編集してもかまいません。尚、権限キーを複数の登録したい場合は、上記の書式を複数行記述することもできます。
(フォームのプロパティ設定ダイアログ/ユーザ権限)
設定ボタンをクリックしてエディタを表示し、パラメータを入力します。
例えば、以下のように設定すると、「UserAuth1」という権限キーで、独自権限1というポリシー名の権限が新たに追加されます(下記は設定例です)。
UserAuth1;Desc:独自権限1
上記を登録すると、アクセス許可のリストに「独自権限1」の許可設定が表示されるようになります。また、スクリプトから「UserAuth1」という権限キーで権限の有無を取得することができます。
(アクセス許可リストに追加された独自権限の例)
|
スクリプトから独自の権限の許可状況を取得するには、「AUTH」ルートメソッドを使用します。
以下に、簡単な処理の実装例を紹介します。
■スクリプトの実装例
1.標準プロジェクトにフォームを1つ追加します。
追加したフォームの以下のプロパティを設定してください。
プロパティ名 |
内容 |
Title |
ユーザーフォーム1 |
MenuCandidate |
True |
AuthCandidate |
True |
AuthParam |
UserAuth1;Desc:独自権限1 |
システム設定画面のスタイル設定からメニュー編集を開き、メインメニューに「ユーザ―フォーム1」を追加しておきます。
続いて、ユーザ管理の設定画面から、管理者、一般ユーザーのアクセス権限を以下のように設定しておきます。
(管理者のアクセス権限)
管理者グループのアクセス許可で、ユーザーフォーム1の「独自権限1」にチェックを入れる。
|
(一般オペレータのアクセス権限)
一般オペレータのアクセス許可は、ユーザーフォーム1の「独自権限1」のチェックを外しておく。
|
2.上記で追加したフォームに、ボタンを1つ配置します。
3.ボタンのスクリプトページを開き、OnMouseUpイベントを追加します。
4.スクリプトを記述します。
権限の有無の確認は、AUTHルートメソッドを使用します。ここでは例として、権限の有無を判定してメッセージボックスに表示する処理を実装します。
(記述内容)
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」と表示されます。
続いて、一般オペレータでログインして同様にボタンをクリックします。
すると、今度は以下のように「Permission NG」と表示されます。