diff --git a/synapse/storage/profile.py b/synapse/storage/profile.py
index da1db0ebae..485b855ec6 100644
--- a/synapse/storage/profile.py
+++ b/synapse/storage/profile.py
@@ -80,7 +80,7 @@ class ProfileWorkerStore(SQLBaseStore):
keyvalues={
"batch": batchnum,
},
- retcols=("user_id", "displayname", "avatar_url"),
+ retcols=("user_id", "displayname", "avatar_url", "active"),
desc="get_profile_batch",
)
@@ -149,6 +149,22 @@ class ProfileStore(ProfileWorkerStore):
lock=False # we can do this because user_id has a unique index
)
+ def set_profile_active(self, user_localpart, active, batchnum):
+ values = {
+ "active": int(active),
+ "batch": batchnum,
+ }
+ if not active:
+ values["avatar_url"] = None
+ values["displayname"] = None
+ return self._simple_upsert(
+ table="profiles",
+ keyvalues={"user_id": user_localpart},
+ values=values,
+ desc="set_profile_active",
+ lock=False # we can do this because user_id has a unique index
+ )
+
def add_remote_profile_cache(self, user_id, displayname, avatar_url):
"""Ensure we are caching the remote user's profiles.
|