Allow registering invalid user IDs with admin API

This commit is contained in:
Tulir Asokan 2020-11-18 01:13:27 +02:00
parent c79b058cff
commit 5ec53ac808

View File

@ -70,8 +70,10 @@ class RegistrationHandler(BaseHandler):
self.session_lifetime = hs.config.session_lifetime
async def check_username(
self, localpart, guest_access_token=None, assigned_user_id=None
self, localpart, guest_access_token=None, assigned_user_id=None, allow_invalid=False
):
# meow: allow admins to register invalid user ids
if not allow_invalid:
if types.contains_invalid_mxid_characters(localpart):
raise SynapseError(
400,
@ -99,6 +101,8 @@ class RegistrationHandler(BaseHandler):
"A different user ID has already been registered for this session",
)
# meow: allow admins to register reserved user ids and long user ids
if not allow_invalid:
self.check_user_id_not_appservice_exclusive(user_id)
if len(user_id) > MAX_USERID_LENGTH:
@ -200,7 +204,9 @@ class RegistrationHandler(BaseHandler):
await self.auth.check_auth_blocking(threepid=threepid)
if localpart is not None:
await self.check_username(localpart, guest_access_token=guest_access_token)
allow_invalid = by_admin and self.hs.config.meow.admin_api_register_invalid
await self.check_username(localpart, guest_access_token=guest_access_token,
allow_invalid=allow_invalid)
was_guest = guest_access_token is not None