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.