summary refs log tree commit diff
path: root/src/Cache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Cache.cpp')
-rw-r--r--src/Cache.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Cache.cpp b/src/Cache.cpp
index 7671af02..f4aad6b3 100644
--- a/src/Cache.cpp
+++ b/src/Cache.cpp
@@ -2128,8 +2128,16 @@ Cache::saveInvite(lmdb::txn &txn,
             auto display_name =
               msg->content.display_name.empty() ? msg->state_key : msg->content.display_name;
 
-            MemberInfo tmp{
-              display_name, msg->content.avatar_url, msg->content.reason, msg->content.is_direct};
+            std::string inviter = "";
+            if (msg->content.membership == mtx::events::state::Membership::Invite) {
+                inviter = msg->sender;
+            }
+
+            MemberInfo tmp{display_name,
+                           msg->content.avatar_url,
+                           inviter,
+                           msg->content.reason,
+                           msg->content.is_direct};
 
             membersdb.put(txn, msg->state_key, nlohmann::json(tmp).dump());
         } else {
@@ -5173,6 +5181,8 @@ to_json(nlohmann::json &j, const MemberInfo &info)
 {
     j["name"]       = info.name;
     j["avatar_url"] = info.avatar_url;
+    if (!info.inviter.empty())
+        j["inviter"] = info.inviter;
     if (info.is_direct)
         j["is_direct"] = info.is_direct;
     if (!info.reason.empty())
@@ -5186,6 +5196,7 @@ from_json(const nlohmann::json &j, MemberInfo &info)
     info.avatar_url = j.value("avatar_url", "");
     info.is_direct  = j.value("is_direct", false);
     info.reason     = j.value("reason", "");
+    info.inviter    = j.value("inviter", "");
 }
 
 void