evaluate method
Evaluate a PermissionRequest against all active rules.
Returns a PermissionDecision from the first matching rule, or a decision with defaultLevel if no rule matches.
Implementation
PermissionDecision evaluate(PermissionRequest request) {
for (final rule in _rules) {
if (!rule.isActive) continue;
if (rule.matches(request)) {
return PermissionDecision(
level: rule.level,
matchedRule: rule,
reason: 'Matched rule "${rule.name}" (${rule.id})',
autoExpiry: rule.level == PermissionLevel.allowOnce
? DateTime.now()
: null,
);
}
}
// No rule matched — use default
return PermissionDecision(
level: defaultLevel,
reason:
'No matching rule; using default level '
'(${defaultLevel.name})',
);
}