33 lines
808 B
Python
33 lines
808 B
Python
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class AliyunSmsSecurity:
|
|
def __init__(self, gateway):
|
|
self._gateway = gateway
|
|
|
|
async def check_allowlist(self, phone_number: str) -> bool:
|
|
account = self._gateway.account
|
|
dm_policy = account.dm_policy
|
|
|
|
if dm_policy == "open":
|
|
return True
|
|
if dm_policy == "disabled":
|
|
return False
|
|
if dm_policy == "allowlist":
|
|
return phone_number in account.allow_from
|
|
if dm_policy == "pairing":
|
|
return True
|
|
|
|
return False
|
|
|
|
def resolve_dm_policy(self) -> dict:
|
|
account = self._gateway.account
|
|
return {
|
|
"mode": account.dm_policy,
|
|
"allow_from": account.allow_from,
|
|
}
|