diff options
author | Erik Johnston <erik@matrix.org> | 2015-08-21 11:34:43 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-08-21 11:38:44 +0100 |
commit | 42f12ad92f5bc372569f15ffc81e9cf8146d2ac6 (patch) | |
tree | 5b9e4d484c7a3e0110c8fafeed2428fb00a20b8b /synapse/storage | |
parent | Don't allow people to register user ids which only differ by case to an exist... (diff) | |
download | synapse-42f12ad92f5bc372569f15ffc81e9cf8146d2ac6.tar.xz |
When logging in fetch user by user_id case insensitively, *unless* there are multiple case insensitive matches, in which case require the exact user_id
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/registration.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py index 25adecaf6d..586628579d 100644 --- a/synapse/storage/registration.py +++ b/synapse/storage/registration.py @@ -99,13 +99,16 @@ class RegistrationStore(SQLBaseStore): ) def get_users_by_id_case_insensitive(self, user_id): + """Gets users that match user_id case insensitively. + Returns a mapping of user_id -> password_hash. + """ def f(txn): sql = ( "SELECT name, password_hash FROM users" - " WHERE name = lower(?)" + " WHERE lower(name) = lower(?)" ) txn.execute(sql, (user_id,)) - return self.cursor_to_dict(txn) + return dict(txn.fetchall()) return self.runInteraction("get_users_by_id_case_insensitive", f) |