Requires (メソッド・キーワード)
ユーザまたはプロセスがこのメソッドを呼び出すために必要な特権のリストを指定します。
使用法
このメソッドの使用を、指定した特権を持つユーザまたはプロセスに限定することを指定するには、以下の構文を使用します。
Method name(formal_spec) As returnclass [ Requires = privilegelist ]
{ //implementation }
privilegelist は、単一の特権、または引用符で囲んだ複数の特権のコンマ区切りリストのいずれかにします。各特権は、resource:permission の形式をとります。permission は、Use、Read、または Write (あるいは 1 文字の省略形 U、R、または W) です。
1 つのリソースに複数の許可を指定するには、1 文字の省略形を使用します。
詳細
メソッドを呼び出すには、ユーザまたはプロセスは、特権のリストにあるすべての特権を持っている必要があります。指定された特権がない場合にこのメソッドを呼び出すと、<PROTECT> エラーが発生します。
メソッドがスーパークラスから Requires キーワードを継承する場合、キーワードに新しい値を設定して、必要な特権のリストに追加できます。必要な特権をこのように削除することはできません。
既定値
このキーワードを省略すると、このメソッドの呼び出しに特別な特権は不要になります。
例
以下のメソッドでは、Sales データベースの読み取り許可と、Marketing データベースへの書き込み許可が必要です (データベースへの書き込み許可を持っている場合、読み取り許可は自動的に付与されます)。
ClassMethod UpdateTotalSales() [ Requires = "%DB_SALES: Read, %DB_MARKETING: Write" ]
{
set newSales = ^["SALES"]Orders
set totalSales = ^["MARKETING"]Orders
set totalSales = totalSales + newSales
set ^["MARKETING"]Orders = totalSales
}
1 つのリソースに複数の許可を指定するには、1 文字の省略形を使用します。以下の 2 つのメソッドは機能的に同等です。
ClassMethod TestMethod() [ Requires = "MyResource: RW" ]
{
write "You have permission to run this method"
}
ClassMethod TestMethodTwo() [ Requires = "MyResource: Read, MyResource: Write" ]
{
write "You have permission to run this method"
}
関連項目
-
このドキュメントの “メソッド定義”
-
"クラスの定義と使用" の “メソッドの定義と呼び出し”
-
"承認ガイド" の “特権および許可”
-
"クラスの定義と使用" の “コンパイラ・キーワードの概要”