Factor out some redundant code in the login impl (#5639)

* Factor out some redundant code in the login impl

Also fixes a redundant access_token which was generated during jwt login.

* changelog
This commit is contained in:
Richard van der Hoff 2019-07-08 14:54:22 +01:00 committed by Amber Brown
parent 1af2fcd492
commit f9e99f9534
2 changed files with 11 additions and 39 deletions

1
changelog.d/5639.misc Normal file
View File

@ -0,0 +1 @@
Factor out some redundant code in the login implementation.

View File

@ -283,19 +283,7 @@ class LoginRestServlet(RestServlet):
yield auth_handler.validate_short_term_login_token_and_get_user_id(token) yield auth_handler.validate_short_term_login_token_and_get_user_id(token)
) )
device_id = login_submission.get("device_id") result = yield self._register_device_with_callback(user_id, login_submission)
initial_display_name = login_submission.get("initial_device_display_name")
device_id, access_token = yield self.registration_handler.register_device(
user_id, device_id, initial_display_name
)
result = {
"user_id": user_id, # may have changed
"access_token": access_token,
"home_server": self.hs.hostname,
"device_id": device_id,
}
defer.returnValue(result) defer.returnValue(result)
@defer.inlineCallbacks @defer.inlineCallbacks
@ -323,35 +311,18 @@ class LoginRestServlet(RestServlet):
raise LoginError(401, "Invalid JWT", errcode=Codes.UNAUTHORIZED) raise LoginError(401, "Invalid JWT", errcode=Codes.UNAUTHORIZED)
user_id = UserID(user, self.hs.hostname).to_string() user_id = UserID(user, self.hs.hostname).to_string()
device_id = login_submission.get("device_id")
initial_display_name = login_submission.get("initial_device_display_name")
auth_handler = self.auth_handler registered_user_id = yield self.auth_handler.check_user_exists(user_id)
registered_user_id = yield auth_handler.check_user_exists(user_id) if not registered_user_id:
if registered_user_id: registered_user_id, _ = (
device_id, access_token = yield self.registration_handler.register_device( yield self.registration_handler.register(
registered_user_id, device_id, initial_display_name localpart=user, generate_token=False
)
) )
result = { result = yield self._register_device_with_callback(
"user_id": registered_user_id, registered_user_id, login_submission
"access_token": access_token,
"home_server": self.hs.hostname,
}
else:
user_id, access_token = (
yield self.registration_handler.register(localpart=user)
) )
device_id, access_token = yield self.registration_handler.register_device(
user_id, device_id, initial_display_name
)
result = {
"user_id": user_id, # may have changed
"access_token": access_token,
"home_server": self.hs.hostname,
}
defer.returnValue(result) defer.returnValue(result)