diff --git a/synapse/handlers/login.py b/synapse/handlers/login.py
index 5c7d503a24..0220fa0604 100644
--- a/synapse/handlers/login.py
+++ b/synapse/handlers/login.py
@@ -16,7 +16,6 @@
from twisted.internet import defer
from ._base import BaseHandler
-from synapse.types import UserID
from synapse.api.errors import LoginError, Codes
import bcrypt
@@ -36,7 +35,7 @@ class LoginHandler(BaseHandler):
"""Login as the specified user with the specified password.
Args:
- user (str): The user ID or username.
+ user (str): The user ID.
password (str): The password.
Returns:
The newly allocated access token.
@@ -48,9 +47,6 @@ class LoginHandler(BaseHandler):
if not hasattr(self, "reg_handler"):
self.reg_handler = self.hs.get_handlers().registration_handler
- if not user.startswith('@'):
- user = UserID.create_local(user, self.hs).to_string()
-
# pull out the hash for this user if they exist
user_info = yield self.store.get_user_by_id(user_id=user)
if not user_info:
diff --git a/synapse/rest/login.py b/synapse/rest/login.py
index 88a3218332..bcf63fd2ab 100644
--- a/synapse/rest/login.py
+++ b/synapse/rest/login.py
@@ -16,6 +16,7 @@
from twisted.internet import defer
from synapse.api.errors import SynapseError
+from synapse.types import UserID
from base import RestServlet, client_path_pattern
import json
@@ -45,12 +46,17 @@ class LoginRestServlet(RestServlet):
@defer.inlineCallbacks
def do_password_login(self, login_submission):
+ if not login_submission["user"].startswith('@'):
+ login_submission["user"] = UserID.create_local(
+ login_submission["user"], self.hs).to_string()
+
handler = self.handlers.login_handler
token = yield handler.login(
user=login_submission["user"],
password=login_submission["password"])
result = {
+ "user_id": login_submission["user"], # may have changed
"access_token": token,
"home_server": self.hs.hostname,
}
|