Merge pull request #1166 from matrix-org/rav/grandfather_broken_riot_signup

Work around email-spamming Riot bug
pull/1168/head
Richard van der Hoff 2016-10-11 11:58:58 +01:00 committed by GitHub
commit 0061e8744f
1 changed files with 14 additions and 3 deletions

View File

@ -150,14 +150,25 @@ class AuthHandler(BaseHandler):
# check auth type currently being presented # check auth type currently being presented
errordict = {} errordict = {}
if 'type' in authdict: if 'type' in authdict:
if authdict['type'] not in self.checkers: login_type = authdict['type']
if login_type not in self.checkers:
raise LoginError(400, "", Codes.UNRECOGNIZED) raise LoginError(400, "", Codes.UNRECOGNIZED)
try: try:
result = yield self.checkers[authdict['type']](authdict, clientip) result = yield self.checkers[login_type](authdict, clientip)
if result: if result:
creds[authdict['type']] = result creds[login_type] = result
self._save_session(session) self._save_session(session)
except LoginError, e: except LoginError, e:
if login_type == LoginType.EMAIL_IDENTITY:
# riot used to have a bug where it would request a new
# validation token (thus sending a new email) each time it
# got a 401 with a 'flows' field.
# (https://github.com/vector-im/vector-web/issues/2447).
#
# Grandfather in the old behaviour for now to avoid
# breaking old riot deployments.
raise e
# this step failed. Merge the error dict into the response # this step failed. Merge the error dict into the response
# so that the client can have another go. # so that the client can have another go.
errordict = e.error_dict() errordict = e.error_dict()