automatically verify new fingerprints of group members

This commit is contained in:
j 2025-02-25 22:54:18 +01:00
commit a67496b025

View file

@ -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'],
})