summaryrefslogtreecommitdiff
path: root/tests/handlers/test_user_directory.py
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2021-10-05 19:23:18 +0200
committerAndrej Shadura <andrewsh@debian.org>2021-10-05 19:23:18 +0200
commit6b06932344e635f554420698ecd1954e31d0c6ea (patch)
tree19c800a7bbcafaf1e7c42b1ae78630c59181089a /tests/handlers/test_user_directory.py
parent474afa181783f07658147efaad11fdc91c18a5df (diff)
New upstream version 1.44.0
Diffstat (limited to 'tests/handlers/test_user_directory.py')
-rw-r--r--tests/handlers/test_user_directory.py53
1 files changed, 47 insertions, 6 deletions
diff --git a/tests/handlers/test_user_directory.py b/tests/handlers/test_user_directory.py
index ae88ed89..266333c5 100644
--- a/tests/handlers/test_user_directory.py
+++ b/tests/handlers/test_user_directory.py
@@ -11,7 +11,9 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+from typing import List, Tuple
from unittest.mock import Mock
+from urllib.parse import quote
from twisted.internet import defer
@@ -20,6 +22,7 @@ from synapse.api.constants import UserTypes
from synapse.api.room_versions import RoomVersion, RoomVersions
from synapse.rest.client import login, room, user_directory
from synapse.storage.roommember import ProfileInfo
+from synapse.types import create_requester
from tests import unittest
from tests.unittest import override_config
@@ -32,7 +35,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
servlets = [
login.register_servlets,
- synapse.rest.admin.register_servlets_for_client_rest_resource,
+ synapse.rest.admin.register_servlets,
room.register_servlets,
]
@@ -130,6 +133,44 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
self.get_success(self.handler.handle_local_user_deactivated(r_user_id))
self.store.remove_from_user_dir.called_once_with(r_user_id)
+ def test_reactivation_makes_regular_user_searchable(self):
+ user = self.register_user("regular", "pass")
+ user_token = self.login(user, "pass")
+ admin_user = self.register_user("admin", "pass", admin=True)
+ admin_token = self.login(admin_user, "pass")
+
+ # Ensure the regular user is publicly visible and searchable.
+ self.helper.create_room_as(user, is_public=True, tok=user_token)
+ s = self.get_success(self.handler.search_users(admin_user, user, 10))
+ self.assertEqual(len(s["results"]), 1)
+ self.assertEqual(s["results"][0]["user_id"], user)
+
+ # Deactivate the user and check they're not searchable.
+ deactivate_handler = self.hs.get_deactivate_account_handler()
+ self.get_success(
+ deactivate_handler.deactivate_account(
+ user, erase_data=False, requester=create_requester(admin_user)
+ )
+ )
+ s = self.get_success(self.handler.search_users(admin_user, user, 10))
+ self.assertEqual(s["results"], [])
+
+ # Reactivate the user
+ channel = self.make_request(
+ "PUT",
+ f"/_synapse/admin/v2/users/{quote(user)}",
+ access_token=admin_token,
+ content={"deactivated": False, "password": "pass"},
+ )
+ self.assertEqual(channel.code, 200)
+ user_token = self.login(user, "pass")
+ self.helper.create_room_as(user, is_public=True, tok=user_token)
+
+ # Check they're searchable.
+ s = self.get_success(self.handler.search_users(admin_user, user, 10))
+ self.assertEqual(len(s["results"]), 1)
+ self.assertEqual(s["results"][0]["user_id"], user)
+
def test_private_room(self):
"""
A user can be searched for only by people that are either in a public
@@ -285,7 +326,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
r.add((i["user_id"], i["other_user_id"], i["room_id"]))
return r
- def get_users_in_public_rooms(self):
+ def get_users_in_public_rooms(self) -> List[Tuple[str, str]]:
r = self.get_success(
self.store.db_pool.simple_select_list(
"users_in_public_rooms", None, ("user_id", "room_id")
@@ -296,7 +337,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
retval.append((i["user_id"], i["room_id"]))
return retval
- def get_users_who_share_private_rooms(self):
+ def get_users_who_share_private_rooms(self) -> List[Tuple[str, str, str]]:
return self.get_success(
self.store.db_pool.simple_select_list(
"users_who_share_private_rooms",
@@ -410,7 +451,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
visible.
"""
self.handler.search_all_users = True
- self.hs.config.user_directory_search_all_users = True
+ self.hs.config.userdirectory.user_directory_search_all_users = True
u1 = self.register_user("user1", "pass")
self.register_user("user2", "pass")
@@ -566,7 +607,7 @@ class TestUserDirSearchDisabled(unittest.HomeserverTestCase):
return hs
def test_disabling_room_list(self):
- self.config.user_directory_search_enabled = True
+ self.config.userdirectory.user_directory_search_enabled = True
# First we create a room with another user so that user dir is non-empty
# for our user
@@ -583,7 +624,7 @@ class TestUserDirSearchDisabled(unittest.HomeserverTestCase):
self.assertTrue(len(channel.json_body["results"]) > 0)
# Disable user directory and check search returns nothing
- self.config.user_directory_search_enabled = False
+ self.config.userdirectory.user_directory_search_enabled = False
channel = self.make_request(
"POST", b"user_directory/search", b'{"search_term":"user2"}'
)