policyApplies 检查策略是否适用
(policy *AccessPolicy, userID, resource, action string, context map[string]any)
| 653 | |
| 654 | // policyApplies 检查策略是否适用 |
| 655 | func (ac *AccessController) policyApplies(policy *AccessPolicy, userID, resource, action string, context map[string]any) bool { |
| 656 | // 检查主体 |
| 657 | if policy.Principal != userID && policy.Principal != "*" { |
| 658 | return false |
| 659 | } |
| 660 | |
| 661 | // 检查资源 |
| 662 | if policy.Resource != "*" && policy.Resource != resource { |
| 663 | return false |
| 664 | } |
| 665 | |
| 666 | // 检查操作 |
| 667 | if policy.Action != "*" && policy.Action != action { |
| 668 | return false |
| 669 | } |
| 670 | |
| 671 | return true |
| 672 | } |
| 673 | |
| 674 | // evaluatePolicyConditions 评估策略条件 |
| 675 | func (ac *AccessController) evaluatePolicyConditions(conditions []PolicyCondition, userID, resource, action string, context map[string]any) bool { |