エフェクト
効果はポリシールールの結果です。 そして、 エフェクター
はCasbinエフェクターのインターフェースです。
MergeEffects()
MergeEffectsは、執行者によって収集されたすべての一致結果を1つの決定にマージします。
例:
Effect, explindex , err = e.MergeEffects(expr, effects matches, policyIndex, policyLength)
この例では:
エフェクト
は、この関数によってマージされる最終決定です(Indeterminate
として初期化されます)。explanation Index
はeft
のインデックスで、Allow
またはDeny
(Initialized as-1
)err
は効果がサポートされているかどうかを確認するために使用されます。expr
は文字列
として格納されたポリシー効果ですエフェクト
は、許可
、不確定
または拒否
のような効果の配列です。matches
は、結果がポリシーと一致することを示す配列です。policyIndex
はモデルのポリシー指数です。ポリシー長さ
はポリシーの長さです。
上のコードは、パラメータを MergeEffects
関数に渡す方法を示しており、関数は expr
に基づいてエフェクトを処理し一致します。
エフェクターを展開するには、以下を実行します。
var e Effector
Effect, description Index, err = e.MergeEffects(expr, effects matches, policyIndex, policyLength)
MergeEffects
の基本的な考え方は、 expr
が p_eft
が 許可
であることを意味する結果と一致する場合を示します。 やっとすべての効果を融合させることができます。 否定ルールが一致しない場合は、我々は許可します。
note
If the expr
can not match "priority(p_eft) || deny"
and also the policyIndex
is shorter than policyLength-1
, it will short-circuit some effects in the middle.