diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2020-04-01 08:27:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-01 08:27:05 -0400 |
commit | 468dcc767bf379ba2b4ed4b6d1c6537473175eab (patch) | |
tree | c6197b906c0e9a40e0a72cb7373b77046c4384bf /synapse/handlers | |
parent | Update postgres.md (#7119) (diff) | |
download | synapse-468dcc767bf379ba2b4ed4b6d1c6537473175eab.tar.xz |
Allow admins to create aliases when they are not in the room (#7191)
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/directory.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/synapse/handlers/directory.py b/synapse/handlers/directory.py index 1d842c369b..53e5f585d9 100644 --- a/synapse/handlers/directory.py +++ b/synapse/handlers/directory.py @@ -127,7 +127,11 @@ class DirectoryHandler(BaseHandler): errcode=Codes.EXCLUSIVE, ) else: - if self.require_membership and check_membership: + # Server admins are not subject to the same constraints as normal + # users when creating an alias (e.g. being in the room). + is_admin = yield self.auth.is_server_admin(requester.user) + + if (self.require_membership and check_membership) and not is_admin: rooms_for_user = yield self.store.get_rooms_for_user(user_id) if room_id not in rooms_for_user: raise AuthError( |