diff --git a/app/signalbot/rpc.py b/app/signalbot/rpc.py index 4962b44..91ad5f9 100644 --- a/app/signalbot/rpc.py +++ b/app/signalbot/rpc.py @@ -1,11 +1,12 @@ import json +import logging import subprocess import requests from django.conf import settings - +logger = logging.getLogger(__name__) rpc_id = 1 @@ -35,6 +36,7 @@ def send(msg, to=None, group=None, preview_url=None, preview_title=None, preview } if group: params["groupId"] = group + verifyGroupMembers(group) else: params["recipient"] = to if preview_url: @@ -60,3 +62,19 @@ def send_reaction(target_address, target_ts, emoji, to=None, group=None, remove= params["recipient"] = to return api("sendReaction", params) + + +def verifyGroupMembers(group_id): + for group in api("listGroups", {}) + if group["id"] == group_id: + for member in group["members"]: + if member["number"] != settings.SIGNAL_ACCOUNT: + for detail in api("listIdentities", { + "number": member["number"] + }): + if detail['trustLevel'] != 'TRUSTED_VERIFIED': + logger.error("%s verification numbers changed (accepting new numbers)", member["number"]) + r = api("trust", { + "recipient": member["number"], + "verifiedSafetyNumber": detail['fingerprint'], + })