(機械翻訳) pyramid.authorization
¶
a:term: 認証ポリシー:a term: principal`または複数のプリンシパルに関する認可情報を決定するためにa:term: context`にアタッチされた:term: `ACL`オブジェクトを参照します。コンテキストが:term: `lineage`の一部である場合、ACL情報についてもコンテキストの親が参照されます。このセキュリティポリシーについて次のことが当てはまります。
'現在の'ユーザが( `` permits``メソッドで)許可されているかどうかをチェックするとき、セキュリティポリシーは最初にACLの `` context``を調べます。コンテキストにACLが存在しない場合、またはACLが存在していても、ACLが有効なプリンシパルに対して明示的に許可または拒否していない場合は、コンテキストの親ACLを参照して、系統が使い果たされるか、許可または拒否。
この処理中に、data: pyramid.security.Deny ACEが` principals`内のプリンシパルと一致する場合、:class: pyramid.security.ACLDenied`インスタンスを返して処理を停止します( False `)すぐに。 any:data: pyramid.security.Allow ACEがプリンシパルと一致する場合、直ちに:class:` pyramid.security.ACLAllowed`インスタンス( `` True``に等しい)を返して処理を停止します。コンテキストのterm: lineage`を使い果たし、ACEが明示的にアクセスを許可または拒否していない場合は、class: pyramid.security.ACLDenied`( `` False``に等しい)のインスタンスを返します。
:func: pyramid.security.principals_allowed_by_permission`メソッドで許可されたプリンシパルを計算するとき、与えられた context``に permission``が明示的に与えられたプリンシパルの集合を計算します。これを行うには、オブジェクトグラフ*をルート*からコンテキストに移動します。このウォーキングプロセス中に、「permission」に一致するプリンシパルに対して明示的な:data: `pyramid.security.Allow ACEが見つかると、プリンシパルは許可リストに含まれます。ただし、後でウォーキングプロセスでプリンシパルがアクセス許可のany:data: pyramid.security.Deny ACEに記述されている場合、プリンシパルは許可リストから削除されます。 permission`と一致するウォーキングプロセス中にプリンシパル:data: pyramid.security.Everyone`への:data: pyramid.security.Deny`が発生した場合、遭遇したすべてのプリンシパルに対して許可リストがクリアされます以前のACLウォーニングプロセスは、 ` context``に直接付加されたACLを処理した後で終了します。一連のプリンシパルが返されます。
このクラスのオブジェクトは:class: `pyramid.interfaces.IAuthorizationPolicy`インタフェースを実装しています。