From 8d7d251c356f74a376053619f23057f0d6d8aa1e Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Thu, 28 Aug 2014 14:56:55 +0100 Subject: Support multiple login flows when deciding how to login. Updated cmdclient and spec. Webclient doesn't need updating for this. --- cmdclient/console.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'cmdclient/console.py') diff --git a/cmdclient/console.py b/cmdclient/console.py index a4d8145d72..7bda4000fc 100755 --- a/cmdclient/console.py +++ b/cmdclient/console.py @@ -225,8 +225,13 @@ class SynapseCmd(cmd.Cmd): json_res = yield self.http_client.do_request("GET", url) print json_res - if ("type" not in json_res or "m.login.password" != json_res["type"] or - "stages" in json_res): + if "flows" not in json_res: + print "Failed to find any login flows." + defer.returnValue(False) + + flow = json_res["flows"][0] # assume first is the one we want. + if ("type" not in flow or "m.login.password" != flow["type"] or + "stages" in flow): fallback_url = self._url() + "/login/fallback" print ("Unable to login via the command line client. Please visit " "%s to login." % fallback_url) -- cgit 1.4.1