Browse Source

hide_profile: false should mean not to hide the profile :/

Matthew Hodgson 5 years ago
parent
commit
82886e4c8f

+ 3 - 3
synapse/handlers/profile.py

@@ -274,9 +274,9 @@ class BaseProfileHandler(BaseHandler):
         """
         Sets the 'active' flag on a user profile. If set to false, the user account is
         considered deactivated or hidden.
-        If 'hide' is true, then we just try hide the user rather than deactivate it.
-        This means withholding it from replication (and mark it as inactive) rather than
-        clearing the profile from the HS DB.
+        If 'hide' is true, then we interpret active=False as a request to try to hide the
+        user rather than deactivating it.  This means withholding the profile from replication
+        (and mark it as inactive) rather than clearing the profile from the HS DB.
         Note that unlike set_displayname and set_avatar_url, this does *not* perform
         authorization checks! This is because the only place it's used currently is
         in account deactivation where we've already done these checks anyway.

+ 1 - 1
synapse/rest/client/v2_alpha/account_data.py

@@ -52,7 +52,7 @@ class AccountDataServlet(RestServlet):
         if account_data_type == "im.vector.hide_profile":
             user = UserID.from_string(user_id)
             hide_profile = body.get('hide_profile')
-            yield self._profile_handler.set_active(user, hide_profile, True)
+            yield self._profile_handler.set_active(user, not hide_profile, True)
 
         max_id = yield self.store.add_account_data_for_user(
             user_id, account_data_type, body

+ 2 - 0
synapse/storage/profile.py

@@ -153,6 +153,8 @@ class ProfileWorkerStore(SQLBaseStore):
             "batch": batchnum,
         }
         if not active and not hide:
+            # we are deactivating for real (not in hide mode)
+            # so clear the profile.
             values["avatar_url"] = None
             values["displayname"] = None
         return self._simple_upsert(