Philipp Hörist pushed to branch master at gajim / gajim


Commits:
9541b59b by Philipp Hörist at 2026-09-02T23:04:14+02:00
fix: OpenPGP: Query public keys only if encryption is active

- - - - -


2 changed files:

- gajim/common/modules/openpgp.py
- gajim/gtk/message_actions_box.py


Changes:

=====================================
gajim/common/modules/openpgp.py
=====================================
@@ -801,11 +801,9 @@ def _on_muc_added(self, event: MucAdded) -> None:
     def _on_muc_event(
         self, contact: GroupchatContact, _signal_name: str, *args: Any
     ) -> None:
-
-        if not self._is_compatible_muc(contact.jid):
+        if contact.settings.get("encryption") != "OpenPGP":
             return
-
-        self._check_groupchat_members_keys(contact.jid)
+        self.request_groupchat_members_keys(contact.jid)
 
     def _get_groupchat_members(self, remote_jid: JID) -> set[JID]:
         affiliations = self._client.get_module("MUC").get_affiliations(
@@ -815,7 +813,13 @@ def _get_groupchat_members(self, remote_jid: JID) -> 
set[JID]:
         members.update(*affiliations.values())
         return members
 
+    def request_groupchat_members_keys(self, remote_jid: JID) -> None:
+        self._check_groupchat_members_keys(remote_jid)
+
     def _check_groupchat_members_keys(self, remote_jid: JID) -> None:
+        if not self._is_compatible_muc(remote_jid):
+            return
+
         for jid in self._get_groupchat_members(remote_jid):
             if not self._is_contact_in_roster(jid):
                 self._log.info("%s not in roster, query keylist...", jid)


=====================================
gajim/gtk/message_actions_box.py
=====================================
@@ -605,9 +605,16 @@ def _change_encryption(self, action: Gio.SimpleAction, 
param: GLib.Variant) -> N
             return
 
         match new_state:
-            case "" | "OMEMO" | "OpenPGP":
+            case "" | "OMEMO":
                 pass
 
+            case "OpenPGP":
+                if isinstance(self._contact, GroupchatContact):
+                    assert self._client is not None
+                    
self._client.get_module("OpenPGP").request_groupchat_members_keys(
+                        self._contact.jid
+                    )
+
             case _:
                 plugin = app.plugin_manager.encryption_plugins.get(new_state)
                 if plugin is None:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/9541b59be362dc9e95beac817df953737b80250a

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/9541b59be362dc9e95beac817df953737b80250a
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to