Passer au contenu principal

Effet

L'effet est le résultat d'une règle politique. Et l' Effet est l'interface pour les effets Casbin.

MergeEffects()

FusionEffets fusionne tous les résultats correspondants recueillis par le détenteur en une seule décision.

Par exemple :

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

Dans cet exemple :

  • L'effet est la décision finale en cours de fusion par cette fonction(Initialisée en tant que indéterminée).
  • explainIndex est l'index de eft qui est Autoriser ou Refuser.(Initialisé comme -1)
  • err est utilisé pour vérifier si l'effet est pris en charge.
  • expr est la politique d'effets stockée sous la forme d'une chaîne ``
  • effects is the array of the Effect which can be Allow, Indeterminate or Deny
  • correspond à la table montrant que si le résultat correspond à la politique.
  • policyIndex est l'indice de politique dans le modčle.
  • policyLength est la longueur de la politique.

Le code ci-dessus illustre comment passer les paramètres à la fonction MergeEffects et la fonction traitera les effets et correspondances basés sur expr

Pour déployer un Effet, nous pouvons faire ceci :

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

L'idée de base des MergeEffects indique que si l' expr peut correspondre aux résultats ce qui signifie que le p_eft est autoriser, alors nous pouvons fusionner tous les effets enfin. Et s'il n'y a pas de règles de refus correspondantes, alors nous le permettons.

note

Si expr ne peut pas correspondre à "priority(p_eft) || nier" et aussi l'index de police est plus court que policyLength-1, il va court-circuit quelques effets au milieu.