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'effetest la décision finale en cours de fusion par cette fonction(Initialisée en tant queindéterminée).explainIndexest l'index deeftqui estAutoriserouRefuser.(Initialisé comme-1)errest utilisé pour vérifier si l'effet est pris en charge.exprest la politique d'effets stockée sous la forme d'une chaîne ``effectsis the array of the Effect which can beAllow,IndeterminateorDenycorrespond àla table montrant que si le résultat correspond à la politique.policyIndexest l'indice de politique dans le modčle.policyLengthest 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.