Affiliation updates using full JIDs instead of bare ones, failure not communicated to users
Please first check if another issue has been opened for your problem
Versions
- Gajim: 1.3.3
- verified, following versions likely as I didn't find any indication in changelog or issues that this was fixed since.
- OS: FreeBSD 13.0-RELEASE with rolling-release packages
- Python: 3.8.13
- nbxmpp: 2.0.4
Steps to reproduce the problem
- Set affiliation in MUC hosted on newer Prosody.
Expected behavior
- A: Affiliation is successfully changed
- B: Affiliation is not successfully changed, Gajim indicates failure
Actual behavior
Silent failure.
Additional Information
From XEP-0045:
Affiliations are granted, revoked, and maintained based on the user's bare JID, not the nick as with roles.
Gajim appears to be using full JIDs instead, leading to affiliation changes failing.
No user-facing indication of these failures is shown to users, but it can be found
in the XML Console:
<iq xmlns="jabber:client" type="error" from="support@conference.phryk.net" id="4faa954b-a110-4e4f-bc35-fd596392d5fc" to="phryk@phryk.net/gajim.B5UFE27L">
<error type="modify">
<jid-malformed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Bare JID expected, got full JID</text>
</error>
</iq>
This behavior was introduced in Prosody in this commit.