9.13 CHECK_AUTHORITY

LANSA

9.13 CHECK_AUTHORITY


Þ 注:組 み込み関数の規則

ユーザーがオブジェクトに対する特定の権限を持っているかどうかを検査します。

各製品の対応

LANSA/AD

使 用可

 

Visual LANSA for Windows

使 用可

オ ブジェクト・タイプP#およびATには、このプラットフォームの文脈上何の意味もありません。これらのオブジェクト・タイプのいずれかがこの組み込 み関数に渡されると、エラーが戻されます。

Visual LANSA for Linux

使 用可

 

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必 須

オ ブジェクト名

1

10

 

 

2

A

必 須

オ ブジェクト名
拡張子の値:

- ブランク
- リテラル
- *LIBL

1

10

 

 

3

A

必 須

オ ブジェクト・タイプ
値:

DF - フィールド
AT - アプリケーション・テンプレート*
PF - ファンクション
PD - プロセス
FD - フィル
P# - 区画*
SV - システム変数
MT - 多言語文字列
*注:オブジェクト・タイプP#とATは、Visual LANSAの文脈上は何の意味もありません。

2

2

 

 

4

A

必 須

オ ブジェクトに必要な権限:

値:

操 作上
UD - 定義を使用する
MD - 定義を変更する
DD - 定義を削除する

デー タ
DS - 表示する
AD- 追加する
CH - 変更する
DL - 削除する

2

2

 

 

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必 須

与 えられる権限

1

1

 

 

 

このファンクションを使用して、ユーザーがファイルのレコードを更新できるか、またはフィールド定義を使用できるかを判定することができます。

DEFINE   FIELD(#OBJEXT) TYPE(*CHAR) LENGTH(10) DEFAULT('''*LIBL''')
* < OR >
DEFINE   FIELD(#OBJEXT) TYPE(*CHAR) LENGTH(10) DEFAULT(*BLANKS)
USE      BUILTIN(CHECK_AUTHORITY) WITH_ARGS (#FILENAME #OBJEXT FD CH) TO_GET(#OKAY)
IF       COND('#OKAY *EQ Y')
UPDATE   FILE(#FILENAME)
ELSE
MESSAGE  MSGTXT('Not authorized to update file')
ENDIF
DEFINE   FIELD(#OBJEXT) TYPE(*CHAR) LENGTH(10) DEFAULT(*BLANKS)
USE      BUILTIN(CHECK_AUTHORITY) WITH_ARGS #FLDNAME #OBJEXT DF UD) TO_GET(#OKAY)
IF       COND('#OKAY *EQ Y')
USE      BUILTIN(GET_FIELD) WITH_ARGS(#FIELDNAME) TO_GET(#RETC #TYPE #LEN....)
ENDIF
 

値*CHECK_AUTH_DYNLIBLがデータ領域DC@OSVEROPに指定されていない場合、ファイルに対する権限(FD)を検査する際にライブ ラリまたは*LIBLが指定されていないときは、LANSAに入力された時点では存在したファイルが現在はライブラリ・リストにあることが想定されます。 ライブラリ・リストをダイナミックに変更することはできません。LANSAセッションの間にライブラリ・リストが変更された場合は、新しいライブラリ・リ ストを認識させるためにLANSAを一度終了してから再起動する必要があります。

ヒ ント

値*CHECK_AUTH_DYNLIBLがデータ領域DC@OSVEROPに指定されている場合は、ファイルに対する権限(FD)を検査する際にライブ ラリまたはLIBLが指定されていないときは、そのつどライブラリ・リストが取得されて、CHECK_AUTHORITYで実際に使用するライブラリがダ イナミックに決定されます。この設定を使用すると、パフォーマンスに影響が生じる場合があります。

ファイルに対する権限を検査する場合は、オブジェクト拡張子の値にシステム変数*PARTDTALIBを使用します。

注:FUNCTION 権限(タイプPF)を検査する場合は、引数としてPROCESSとFUNCTIONの両方を指定する必要があります。つまり、オブジェクト名は PROCESSで、オブジェクト拡張子はFUNCTIONになります。

USE      BUILTIN(CHECK_AUTHORITY) 
         WITH_ARGS (#PROCESS CONTROL PF UD ) TO_GET(#OKAY)
IF       COND('#OKAY *EQ Y')
CALL     PROCESS(#PROCESS) FUNCTION(CONTROL)
ELSE
MESSAGE  MSGTXT('Not authorized to function CONTROL')
ENDIF