Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Added |../../index.htm#lansa/check_authority.htm]
現在地:

Anchor
_Toc130907233
_Toc130907233
9.14 CHECK_AUTHORITY

注意: 9.1 組み込み関数の規則      &<a href="bifcat2_09.htm"&>利用オプション&</a&>利用オプション
ユーザーがオブジェクトに対する特定の権限を持っているかどうかを検査します。
 
引数

...

 
このファンクションを使用して、ユーザーがファイルのレコードを更新できるか、またはフィールド定義を使用できるかを判定することができます。
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  
[ Image Added |../../index.htm#lansa/check_authority.htm]