checkPermissionList 检查权限列表
(permissionIDs []string, resource, action string, context map[string]any)
| 813 | |
| 814 | // checkPermissionList 检查权限列表 |
| 815 | func (ac *AccessController) checkPermissionList(permissionIDs []string, resource, action string, context map[string]any) bool { |
| 816 | for _, permID := range permissionIDs { |
| 817 | permission, exists := ac.permissions[permID] |
| 818 | if !exists || !permission.Enabled { |
| 819 | continue |
| 820 | } |
| 821 | |
| 822 | // 检查资源和操作匹配 |
| 823 | if (permission.Resource == "*" || permission.Resource == resource) && |
| 824 | (permission.Action == "*" || permission.Action == action) { |
| 825 | // 检查权限条件 |
| 826 | if ac.checkPermissionConditions(permission.Conditions, context) { |
| 827 | return true |
| 828 | } |
| 829 | } |
| 830 | } |
| 831 | |
| 832 | return false |
| 833 | } |
| 834 | |
| 835 | // checkPermissionConditions 检查权限条件 |
| 836 | func (ac *AccessController) checkPermissionConditions(conditions []PermissionCondition, context map[string]any) bool { |
no test coverage detected