MCPcopy Create free account
hub / github.com/astercloud/aster / evaluateCondition

Method evaluateCondition

pkg/security/access_control.go:685–701  ·  view source on GitHub ↗

evaluateCondition 评估单个条件

(condition PolicyCondition, userID, resource, action string, context map[string]any)

Source from the content-addressed store, hash-verified

683
684// evaluateCondition 评估单个条件
685func (ac *AccessController) evaluateCondition(condition PolicyCondition, userID, resource, action string, context map[string]any) bool {
686 // 简化的条件评估
687 switch condition.Field {
688 case "user.id":
689 return ac.compareValues(userID, string(condition.Operator), condition.Value)
690 case "resource":
691 return ac.compareValues(resource, string(condition.Operator), condition.Value)
692 case "action":
693 return ac.compareValues(action, string(condition.Operator), condition.Value)
694 default:
695 // 从context中获取值
696 if val, exists := context[condition.Field]; exists {
697 return ac.compareValues(val, string(condition.Operator), condition.Value)
698 }
699 return false
700 }
701}
702
703// compareValues 比较值
704func (ac *AccessController) compareValues(actual any, operator string, expected any) bool {

Callers 1

Calls 1

compareValuesMethod · 0.95

Tested by

no test coverage detected