Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Fix GET request on /_synapse/admin/v2/users endpoint (#6563)
Browse files Browse the repository at this point in the history
* commit '7caaa29da':
  Fix GET request on /_synapse/admin/v2/users endpoint (#6563)
  • Loading branch information
anoadragon453 committed Mar 20, 2020
2 parents f4a7449 + 7caaa29 commit 6e7fb4c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 2 deletions.
1 change: 1 addition & 0 deletions changelog.d/6563.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix GET request on /_synapse/admin/v2/users endpoint. Contributed by Awesome Technologies Innovationslabor GmbH.
4 changes: 2 additions & 2 deletions synapse/storage/data_stores/main/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -526,9 +526,9 @@ def get_users_paginate(

attr_filter = {}
if not guests:
attr_filter["is_guest"] = False
attr_filter["is_guest"] = 0
if not deactivated:
attr_filter["deactivated"] = False
attr_filter["deactivated"] = 0

return self.db.simple_select_list_paginate(
desc="get_users_paginate",
Expand Down
41 changes: 41 additions & 0 deletions tests/rest/admin/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,47 @@ def nonce():
self.assertEqual("Invalid user type", channel.json_body["error"])


class UsersListTestCase(unittest.HomeserverTestCase):

servlets = [
synapse.rest.admin.register_servlets,
login.register_servlets,
]
url = "/_synapse/admin/v2/users"

def prepare(self, reactor, clock, hs):
self.admin_user = self.register_user("admin", "pass", admin=True)
self.admin_user_tok = self.login("admin", "pass")

self.register_user("user1", "pass1", admin=False)
self.register_user("user2", "pass2", admin=False)

def test_no_auth(self):
"""
Try to list users without authentication.
"""
request, channel = self.make_request("GET", self.url, b"{}")
self.render(request)

self.assertEqual(401, int(channel.result["code"]), msg=channel.result["body"])
self.assertEqual("M_MISSING_TOKEN", channel.json_body["errcode"])

def test_all_users(self):
"""
List all users, including deactivated users.
"""
request, channel = self.make_request(
"GET",
self.url + "?deactivated=true",
b"{}",
access_token=self.admin_user_tok,
)
self.render(request)

self.assertEqual(200, int(channel.result["code"]), msg=channel.result["body"])
self.assertEqual(3, len(channel.json_body["users"]))


class ShutdownRoomTestCase(unittest.HomeserverTestCase):
servlets = [
synapse.rest.admin.register_servlets_for_client_rest_resource,
Expand Down

0 comments on commit 6e7fb4c

Please sign in to comment.