diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-02-14 09:37:48 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-02-14 09:37:48 (GMT) |
commit | b05f8fcb285d2d13d2be50a3eb1062048fbe30f5 (patch) | |
tree | 497856182b8e72ad839c67c6b0bca6edbc28a292 /Swiften/MUC/MUC.cpp | |
parent | aae3defeecd5a000db33c973f9241d8b9db12c0c (diff) | |
download | swift-contrib-b05f8fcb285d2d13d2be50a3eb1062048fbe30f5.zip swift-contrib-b05f8fcb285d2d13d2be50a3eb1062048fbe30f5.tar.bz2 |
Correctly use bare JIDs when banning people from rooms
Diffstat (limited to 'Swiften/MUC/MUC.cpp')
-rw-r--r-- | Swiften/MUC/MUC.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Swiften/MUC/MUC.cpp b/Swiften/MUC/MUC.cpp index 9f6c7fb..9bcb279 100644 --- a/Swiften/MUC/MUC.cpp +++ b/Swiften/MUC/MUC.cpp @@ -265,71 +265,71 @@ void MUC::kickOccupant(const JID& jid) { void MUC::changeOccupantRole(const JID& jid, MUCOccupant::Role role) { MUCAdminPayload::ref mucPayload = boost::make_shared<MUCAdminPayload>(); MUCItem item; item.role = role; item.nick = jid.getResource(); mucPayload->addItem(item); GenericRequest<MUCAdminPayload>* request = new GenericRequest<MUCAdminPayload>(IQ::Set, getJID(), mucPayload, iqRouter_); request->onResponse.connect(boost::bind(&MUC::handleOccupantRoleChangeResponse, this, _1, _2, jid, role)); request->send(); } void MUC::handleOccupantRoleChangeResponse(MUCAdminPayload::ref /*unused*/, ErrorPayload::ref error, const JID& jid, MUCOccupant::Role role) { if (error) { onRoleChangeFailed(error, jid, role); } } void MUC::requestAffiliationList(MUCOccupant::Affiliation affiliation) { MUCAdminPayload::ref mucPayload = boost::make_shared<MUCAdminPayload>(); MUCItem item; item.affiliation = affiliation; mucPayload->addItem(item); GenericRequest<MUCAdminPayload>* request = new GenericRequest<MUCAdminPayload>(IQ::Get, getJID(), mucPayload, iqRouter_); request->onResponse.connect(boost::bind(&MUC::handleAffiliationListResponse, this, _1, _2, affiliation)); request->send(); } /** * Must be called with the real JID, not the room JID. */ void MUC::changeAffiliation(const JID& jid, MUCOccupant::Affiliation affiliation) { MUCAdminPayload::ref mucPayload = boost::make_shared<MUCAdminPayload>(); MUCItem item; item.affiliation = affiliation; - item.realJID = jid; + item.realJID = jid.toBare(); mucPayload->addItem(item); GenericRequest<MUCAdminPayload>* request = new GenericRequest<MUCAdminPayload>(IQ::Set, getJID(), mucPayload, iqRouter_); request->onResponse.connect(boost::bind(&MUC::handleAffiliationChangeResponse, this, _1, _2, jid, affiliation)); request->send(); } void MUC::handleAffiliationListResponse(MUCAdminPayload::ref payload, ErrorPayload::ref error, MUCOccupant::Affiliation affiliation) { if (error) { onAffiliationListFailed(error); } else { std::vector<JID> jids; foreach (MUCItem item, payload->getItems()) { if (item.realJID) { jids.push_back(*item.realJID); } } onAffiliationListReceived(affiliation, jids); } } void MUC::handleAffiliationChangeResponse(MUCAdminPayload::ref /*unused*/, ErrorPayload::ref error, const JID& jid, MUCOccupant::Affiliation affiliation) { if (error) { onAffiliationChangeFailed(error, jid, affiliation); } } void MUC::changeSubject(const std::string& subject) { Message::ref message = boost::make_shared<Message>(); message->setSubject(subject); message->setType(Message::Groupchat); message->setTo(ownMUCJID.toBare()); stanzaChannel->sendMessage(message); } |