Commit f2386cce authored by Christian Schudt's avatar Christian Schudt

Include correct affiliation and role after revoking MUC membership.

Previous stanza had status code 321 (membership revoked), but still had the owner and role set to the old role:
affiliation="owner" role="moderator"

Now it is the correct role after revoking membership:
affiliation="none" role="none"
parent 2746a7f4
......@@ -163,6 +163,12 @@ public class LocalMUCRole implements MUCRole {
this.presence = newPresence;
this.presence.setFrom(getRoleAddress());
if (extendedInformation != null) {
// Remove any previous extendedInformation, then re-add it.
Element mucUser = presence.getElement().element(QName.get("x", "http://jabber.org/protocol/muc#user"));
if (mucUser != null) {
// Remove any previous extendedInformation, then re-add it.
presence.getElement().remove(mucUser);
}
Element exi = extendedInformation.createCopy();
presence.getElement().add(exi);
}
......
......@@ -1377,6 +1377,8 @@ public class LocalMUCRoom implements MUCRoom, GroupEventListener {
if (role.isLocal()) {
role.setAffiliation(newAffiliation);
role.setRole(newRole);
// Set the new presence, so that the updated affiliation and role is reflected in the presence stanza.
role.setPresence(role.getPresence());
// Notify the other cluster nodes to update the occupant
CacheFactory.doClusterTask(new UpdateOccupant(this, role));
// Prepare a new presence to be sent to all the room occupants
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment