주요 콘텐츠로 건너뛰기

Effector

Effect는 정책 규칙의 결과를 나타내며, Effector는 Casbin에서 효과를 처리하는 인터페이스입니다.

MergeEffects()

MergeEffects() 함수는 enforcer가 수집한 모든 일치 결과를 단일 결정으로 병합하는 데 사용됩니다.

예를 들어:

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

이 예에서:

  • Effect는 이 함수에 의해 병합된 최종 결정입니다(Indeterminate로 초기화됨).
  • explainIndexeft의 인덱스(Allow 또는 Deny)이며, -1로 초기화됩니다.
  • err는 효과가 지원되는지 확인하는 데 사용됩니다.
  • expr는 정책 효과의 문자열 표현입니다.
  • effects는 효과의 배열로, Allow, Indeterminate, 또는 Deny가 될 수 있습니다.
  • matches는 결과가 정책과 일치하는지 여부를 나타내는 배열입니다.
  • policyIndex는 모델에서의 정책 인덱스입니다.
  • policyLength는 정책의 길이입니다.

위의 코드는 MergeEffects() 함수에 매개변수를 전달하는 방법을 보여주며, 함수는 expr에 기반하여 효과와 일치 항목을 처리합니다.

Effector를 사용하려면 다음 단계를 따르십시오:

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

MergeEffects()의 기본 아이디어는 expr이 결과와 일치할 수 있음을 나타내어, p_eftallow이면 모든 효과를 병합할 수 있다는 것입니다. 거부 규칙이 일치하지 않으면 결정은 허용입니다.

노트

만약 expr이 조건 "priority(p_eft) || deny"와 일치하지 않고, policyIndexpolicyLength-1보다 짧다면, 중간의 일부 효과를 단락할 것입니다.