Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Factor out some redundant code in the login impl (#5639)
Browse files Browse the repository at this point in the history
* Factor out some redundant code in the login impl

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

* changelog
  • Loading branch information
richvdh authored and hawkowl committed Jul 8, 2019
1 parent 1af2fcd commit f9e99f9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 39 deletions.
1 change: 1 addition & 0 deletions changelog.d/5639.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Factor out some redundant code in the login implementation.
49 changes: 10 additions & 39 deletions synapse/rest/client/v1/login.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,19 +283,7 @@ def do_token_login(self, login_submission):
yield auth_handler.validate_short_term_login_token_and_get_user_id(token)
)

device_id = login_submission.get("device_id")
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,
}

result = yield self._register_device_with_callback(user_id, login_submission)
defer.returnValue(result)

@defer.inlineCallbacks
Expand Down Expand Up @@ -323,35 +311,18 @@ def do_jwt_login(self, login_submission):
raise LoginError(401, "Invalid JWT", errcode=Codes.UNAUTHORIZED)

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 auth_handler.check_user_exists(user_id)
if registered_user_id:
device_id, access_token = yield self.registration_handler.register_device(
registered_user_id, device_id, initial_display_name
)

result = {
"user_id": registered_user_id,
"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
registered_user_id = yield self.auth_handler.check_user_exists(user_id)
if not registered_user_id:
registered_user_id, _ = (
yield self.registration_handler.register(
localpart=user, generate_token=False
)
)

result = {
"user_id": user_id, # may have changed
"access_token": access_token,
"home_server": self.hs.hostname,
}

result = yield self._register_device_with_callback(
registered_user_id, login_submission
)
defer.returnValue(result)


Expand Down

0 comments on commit f9e99f9

Please sign in to comment.