simplify(pairing): unify allow_list lookup in BaseChannel.is_allowed()

Merge the three-branch dict lookup (allow_from key check, allowFrom
fallback, getattr) into a single `or` chain. Same semantics, less
branching.
This commit is contained in:
chengyongru 2026-05-15 14:42:31 +08:00
parent afee754fec
commit 066d2b989f

View File

@ -184,12 +184,9 @@ class BaseChannel(ABC):
def is_allowed(self, sender_id: str) -> bool:
"""Check sender permission: star > allowlist > pairing store > deny."""
if isinstance(self.config, dict):
if "allow_from" in self.config:
allow_list = self.config.get("allow_from") or []
else:
allow_list = self.config.get("allowFrom", []) or []
allow_list = self.config.get("allow_from") or self.config.get("allowFrom") or []
else:
allow_list = getattr(self.config, "allow_from", []) or []
allow_list = getattr(self.config, "allow_from", None) or []
if "*" in allow_list:
return True
# allowFrom entries are opaque tokens — must match exactly.