summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Serializer')
-rw-r--r--Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp
index 96fba90..66ca5d0 100644
--- a/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp
@@ -34,6 +34,28 @@ std::string MUCUserPayloadSerializer::serializePayload(boost::shared_ptr<MUCUser
foreach (const MUCItem& item, payload->getItems()) {
mucElement.addNode(MUCItemSerializer::itemToElement(item));
}
+
+ if (payload->getPassword()) {
+ boost::shared_ptr<XMLElement> passwordElement = boost::make_shared<XMLElement>("password");
+ passwordElement->addNode(boost::make_shared<XMLTextNode>(*payload->getPassword()));
+ }
+
+ if (payload->getInvite()) {
+ MUCUserPayload::Invite invite = *payload->getInvite();
+ boost::shared_ptr<XMLElement> inviteElement = boost::make_shared<XMLElement>("invite");
+ if (invite.to.isValid()) {
+ inviteElement->setAttribute("to", invite.to.toString());
+ }
+ if (invite.from.isValid()) {
+ inviteElement->setAttribute("from", invite.from.toString());
+ }
+ if (!invite.reason.empty()) {
+ boost::shared_ptr<XMLElement> reasonElement = boost::make_shared<XMLElement>("reason");
+ reasonElement->addNode(boost::make_shared<XMLTextNode>(invite.reason));
+ }
+ mucElement.addNode(inviteElement);
+ }
+
boost::shared_ptr<Payload> childPayload = payload->getPayload();
if (childPayload) {
PayloadSerializer* serializer = serializers->getPayloadSerializer(childPayload);