summary refs log tree commit diff
path: root/cmdclient/console.py
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-08-28 14:56:55 +0100
committerKegan Dougal <kegan@matrix.org>2014-08-28 14:56:55 +0100
commit8d7d251c356f74a376053619f23057f0d6d8aa1e (patch)
tree8ad9aefa4539a190fee82ec789db7dabbbfc7430 /cmdclient/console.py
parentFleshed out login spec. (diff)
downloadsynapse-8d7d251c356f74a376053619f23057f0d6d8aa1e.tar.xz
Support multiple login flows when deciding how to login. Updated cmdclient and spec. Webclient doesn't need updating for this.
Diffstat (limited to 'cmdclient/console.py')
-rwxr-xr-xcmdclient/console.py9
1 files changed, 7 insertions, 2 deletions
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)