hs: Make /login accept full user IDs or just local parts. webclient: Only enable Register button when both password fields match.
3 files changed, 6 insertions, 8 deletions
diff --git a/synapse/handlers/login.py b/synapse/handlers/login.py
index 0220fa0604..5c7d503a24 100644
--- a/synapse/handlers/login.py
+++ b/synapse/handlers/login.py
@@ -16,6 +16,7 @@
from twisted.internet import defer
from ._base import BaseHandler
+from synapse.types import UserID
from synapse.api.errors import LoginError, Codes
import bcrypt
@@ -35,7 +36,7 @@ class LoginHandler(BaseHandler):
"""Login as the specified user with the specified password.
Args:
- user (str): The user ID.
+ user (str): The user ID or username.
password (str): The password.
Returns:
The newly allocated access token.
@@ -47,6 +48,9 @@ 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/webclient/login/login-controller.js b/webclient/login/login-controller.js
index 826a533873..53756be9ea 100644
--- a/webclient/login/login-controller.js
+++ b/webclient/login/login-controller.js
@@ -68,12 +68,6 @@ angular.module('LoginController', ['matrixService'])
};
$scope.login = function() {
- if ($scope.account.user_id.indexOf("@") !== 0) {
- // technically should be the host of account.homeserver
- $scope.account.user_id = "@" + $scope.account.user_id + ":" +
- $location.host()
- }
-
matrixService.setConfig({
homeserver: $scope.account.homeserver,
user_id: $scope.account.user_id
diff --git a/webclient/login/login.html b/webclient/login/login.html
index f02dde89a6..0fbeeabed7 100644
--- a/webclient/login/login.html
+++ b/webclient/login/login.html
@@ -15,7 +15,7 @@
<!-- New user registration -->
<div>
<br/>
- <button ng-click="register()" ng-disabled="!account.desired_user_name || !account.homeserver || !account.identityServer || !account.pwd1 || !account.pwd2">Register</button>
+ <button ng-click="register()" ng-disabled="!account.desired_user_name || !account.homeserver || !account.identityServer || !account.pwd1 || !account.pwd2 || account.pwd1 !== account.pwd2">Register</button>
</div>
</form>
|