fix: group_members beim Kontakt-Löschen bereinigen

Neue Funktion delete_group_members_by_uids in db.py entfernt
Member-Einträge aus group_members wenn ein Kontakt gelöscht wird.
Nutzt JOIN über groups Tabelle für Account-Scoping.
Doku in README.md aktualisiert.
This commit is contained in:
2026-08-07 15:33:31 +02:00
parent cccb4217b0
commit 57739f99a4
3 changed files with 18 additions and 3 deletions
+14
View File
@@ -130,6 +130,20 @@ def delete_contacts_by_href_uids(conn, account: str, uids: list[str]):
conn.commit()
def delete_group_members_by_uids(conn, account: str, uids: list[str]):
if not uids:
return
with conn.cursor() as cur:
placeholders = ", ".join(["%s"] * len(uids))
cur.execute(
f"""DELETE gm FROM group_members gm
JOIN `groups` g ON g.id = gm.group_id
WHERE g.account = %s AND gm.member_uid IN ({placeholders})""",
[account] + uids,
)
conn.commit()
def _build_full_name(row: dict) -> str | None:
parts = [
row.get("prefix"),