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

Commit

Permalink
Remove unnecessary abstractions in admin handler (#6751)
Browse files Browse the repository at this point in the history
  • Loading branch information
anoadragon453 authored Jan 22, 2020
1 parent 33f7e5c commit ce84dd9
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 73 deletions.
1 change: 1 addition & 0 deletions changelog.d/6751.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove some unnecessary admin handler abstraction methods.
62 changes: 0 additions & 62 deletions synapse/handlers/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,68 +62,6 @@ async def get_user(self, user):
ret["avatar_url"] = profile.avatar_url
return ret

async def get_users(self):
"""Function to retrieve a list of users in users table.
Args:
Returns:
defer.Deferred: resolves to list[dict[str, Any]]
"""
ret = await self.store.get_users()

return ret

async def get_users_paginate(self, start, limit, name, guests, deactivated):
"""Function to retrieve a paginated list of users from
users list. This will return a json list of users.
Args:
start (int): start number to begin the query from
limit (int): number of rows to retrieve
name (string): filter for user names
guests (bool): whether to in include guest users
deactivated (bool): whether to include deactivated users
Returns:
defer.Deferred: resolves to json list[dict[str, Any]]
"""
ret = await self.store.get_users_paginate(
start, limit, name, guests, deactivated
)

return ret

async def search_users(self, term):
"""Function to search users list for one or more users with
the matched term.
Args:
term (str): search term
Returns:
defer.Deferred: resolves to list[dict[str, Any]]
"""
ret = await self.store.search_users(term)

return ret

def get_user_server_admin(self, user):
"""
Get the admin bit on a user.
Args:
user_id (UserID): the (necessarily local) user to manipulate
"""
return self.store.is_server_admin(user)

def set_user_server_admin(self, user, admin):
"""
Set the admin bit on a user.
Args:
user_id (UserID): the (necessarily local) user to manipulate
admin (bool): whether or not the user should be an admin of this server
"""
return self.store.set_server_admin(user, admin)

async def export_user_data(self, user_id, writer):
"""Write all data we have on the user to the given writer.
Expand Down
19 changes: 9 additions & 10 deletions synapse/rest/admin/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ class UsersRestServlet(RestServlet):

def __init__(self, hs):
self.hs = hs
self.store = hs.get_datastore()
self.auth = hs.get_auth()
self.admin_handler = hs.get_handlers().admin_handler

Expand All @@ -55,7 +56,7 @@ async def on_GET(self, request, user_id):
if not self.hs.is_mine(target_user):
raise SynapseError(400, "Can only users a local user")

ret = await self.admin_handler.get_users()
ret = await self.store.get_users()

return 200, ret

Expand All @@ -80,6 +81,7 @@ class UsersRestServletV2(RestServlet):

def __init__(self, hs):
self.hs = hs
self.store = hs.get_datastore()
self.auth = hs.get_auth()
self.admin_handler = hs.get_handlers().admin_handler

Expand All @@ -92,7 +94,7 @@ async def on_GET(self, request):
guests = parse_boolean(request, "guests", default=True)
deactivated = parse_boolean(request, "deactivated", default=False)

users = await self.admin_handler.get_users_paginate(
users = await self.store.get_users_paginate(
start, limit, user_id, guests, deactivated
)
ret = {"users": users}
Expand Down Expand Up @@ -516,8 +518,8 @@ class SearchUsersRestServlet(RestServlet):
PATTERNS = historical_admin_path_patterns("/search_users/(?P<target_user_id>[^/]*)")

def __init__(self, hs):
self.store = hs.get_datastore()
self.hs = hs
self.store = hs.get_datastore()
self.auth = hs.get_auth()
self.handlers = hs.get_handlers()

Expand All @@ -540,7 +542,7 @@ async def on_GET(self, request, target_user_id):
term = parse_string(request, "term", required=True)
logger.info("term: %s ", term)

ret = await self.handlers.admin_handler.search_users(term)
ret = await self.handlers.store.search_users(term)
return 200, ret


Expand Down Expand Up @@ -574,8 +576,8 @@ class UserAdminServlet(RestServlet):

def __init__(self, hs):
self.hs = hs
self.store = hs.get_datastore()
self.auth = hs.get_auth()
self.handlers = hs.get_handlers()

async def on_GET(self, request, user_id):
await assert_requester_is_admin(self.auth, request)
Expand All @@ -585,8 +587,7 @@ async def on_GET(self, request, user_id):
if not self.hs.is_mine(target_user):
raise SynapseError(400, "Only local users can be admins of this homeserver")

is_admin = await self.handlers.admin_handler.get_user_server_admin(target_user)
is_admin = bool(is_admin)
is_admin = await self.store.is_server_admin(target_user)

return 200, {"admin": is_admin}

Expand All @@ -609,8 +610,6 @@ async def on_PUT(self, request, user_id):
if target_user == auth_user and not set_admin_to:
raise SynapseError(400, "You may not demote yourself.")

await self.handlers.admin_handler.set_user_server_admin(
target_user, set_admin_to
)
await self.store.set_user_server_admin(target_user, set_admin_to)

return 200, {}
2 changes: 1 addition & 1 deletion synapse/storage/data_stores/main/registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ def is_server_admin(self, user):
desc="is_server_admin",
)

return res if res else False
return bool(res) if res else False

def set_server_admin(self, user, admin):
"""Sets whether a user is an admin of this homeserver.
Expand Down

0 comments on commit ce84dd9

Please sign in to comment.