Zum Hauptinhalt springen

Effektor

Der Effekt ist das Ergebnis einer politischen Regel. Und der Effector ist die Schnittstelle f├╝r Casbin Effekte.

MergeEffects()ÔÇő

MergeEffects vereint alle vom Durchsetzer gesammelten ├╝bereinstimmenden Ergebnisse in einer einzigen Entscheidung.

Zum Beispiel:

Effect, explainIndex, err = e.MergeEffects(expr, effects, matches, policyIndex, policyLength)

In diesem Beispiel:

  • Effekt ist die endg├╝ltige Entscheidung, die von dieser Funktion zusammengef├╝hrt wird (Initialisiert als Undeterminate).
  • explainIndex ist der Index von eft , der Erlaubt oder Ablehnen.(Initialisiert als -1)
  • Fr. wird verwendet um zu ├╝berpr├╝fen, ob der Effekt unterst├╝tzt wird.
  • expr ist der Richtlinieneffekt, der als String gespeichert wird
  • Effekte ist das Array des Effekts, das Erlaube, Unbestimmt oder Ablehnen
  • entspricht dem Array, das zeigt, dass wenn das Ergebnis mit der Richtlinie ├╝bereinstimmt.
  • policyIndex ist der Index der Richtlinien im Modell.
  • PolicyLength ist die L├Ąnge der Richtlinie.

Der obige Code zeigt, wie wir die Parameter an die MergeEffects Funktion ├╝bergeben k├Ânnen und die Funktion verarbeitet die Effekte und ├ťbereinstimmungen basierend auf dem expr

Um einen Effekt zu installieren, k├Ânnen wir dies tun:

var e Effector
Effect, explainIndex, err = e.MergeEffects(expr, effects, matches, policyIndex, policyLength)

Die Grundidee der MergeEffects zeigt an, dass, wenn die expr die Ergebnisse ├╝bereinstimmen kann, das bedeutet, dass p_eft erlaubt ist, dann k├Ânnen wir endlich alle Effekte zusammenf├╝hren. Und wenn es keine Abrede gibt, dann lassen wir es zu.

note

Wenn der expr nicht ├╝bereinstimmen kann "priority(p_eft) || deny" und auch der policyIndex ist k├╝rzer als policyLength-1, es wird Kurzschluss einige Effekte in der Mitte.