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, effets, correspondances, policyIndex, policyLength)
Dans cet exemple :
L'effet
est la décision finale en cours de fusion par cette fonction(Initialisée en tant queindéterminée
).explainIndex
est l'index deeft
qui estAutoriser
ouRefuser
.(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 beAllow
,Indeterminate
orDeny
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
Effet, explainIndex, err = e.MergeEffects(expr, effets, 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 policyIndex
est plus court que policyLength-1
, il court-circuit quelques effets au milieu.