From 32e4420a6678f1cfa4a3e488cff2d219ca326950 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 3 May 2018 04:20:25 +0100 Subject: improve mxid & displayname selection for register_mxid_from_3pid * [x] strip invalid characters from generated mxid * [x] append numbers to disambiguate clashing mxids * [x] generate displayanames from 3pids using a dodgy heuristic * [x] get rid of the create_profile_with_localpart and instead explicitly set displaynames so they propagate correctly --- synapse/types.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'synapse/types.py') diff --git a/synapse/types.py b/synapse/types.py index cc7c182a78..46be4a071d 100644 --- a/synapse/types.py +++ b/synapse/types.py @@ -229,6 +229,18 @@ def contains_invalid_mxid_characters(localpart): return any(c not in mxid_localpart_allowed_characters for c in localpart) +def strip_invalid_mxid_characters(localpart): + """Removes any invalid characters from an mxid + + Args: + localpart (basestring): the localpart to be stripped + + Returns: + localpart (basestring): the localpart having been stripped + """ + return filter(lambda c: c not in mxid_localpart_allowed_characters, localpart) + + class StreamToken( namedtuple("Token", ( "room_key", -- cgit 1.5.1 From 5c74ab406445e2dca677b65d8545aeed2a79c4ae Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Fri, 4 May 2018 00:53:56 +0100 Subject: fix user_id / user confusion --- synapse/handlers/register.py | 10 +++++----- synapse/types.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'synapse/types.py') diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py index 9a1af53dfa..14031cea47 100644 --- a/synapse/handlers/register.py +++ b/synapse/handlers/register.py @@ -178,7 +178,7 @@ class RegistrationHandler(BaseHandler): if display_name: yield self.profile_handler.set_displayname( - user_id, user_id, display_name, by_admin=True, + user, user, display_name, by_admin=True, ) if self.hs.config.user_directory_search_all_users: @@ -208,7 +208,7 @@ class RegistrationHandler(BaseHandler): ) yield self.profile_handler.set_displayname( - user_id, user_id, user.localpart, by_admin=True, + user, user, user.localpart, by_admin=True, ) except SynapseError: @@ -257,7 +257,7 @@ class RegistrationHandler(BaseHandler): ) yield self.profile_handler.set_displayname( - user_id, user_id, user.localpart, by_admin=True, + user, user, user.localpart, by_admin=True, ) defer.returnValue(user_id) @@ -308,7 +308,7 @@ class RegistrationHandler(BaseHandler): ) yield self.profile_handler.set_displayname( - user_id, user_id, user.localpart, by_admin=True, + user, user, user.localpart, by_admin=True, ) except Exception as e: yield self.store.add_access_token_to_user(user_id, token) @@ -466,7 +466,7 @@ class RegistrationHandler(BaseHandler): ) if displayname is not None: yield self.profile_handler.set_displayname( - user_id, user_id, displayname, by_admin=True, + user, user, displayname, by_admin=True, ) else: yield self._auth_handler.delete_access_tokens_for_user(user_id) diff --git a/synapse/types.py b/synapse/types.py index 46be4a071d..00e6e1c369 100644 --- a/synapse/types.py +++ b/synapse/types.py @@ -238,7 +238,7 @@ def strip_invalid_mxid_characters(localpart): Returns: localpart (basestring): the localpart having been stripped """ - return filter(lambda c: c not in mxid_localpart_allowed_characters, localpart) + return filter(lambda c: c in mxid_localpart_allowed_characters, localpart) class StreamToken( -- cgit 1.5.1