X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=fulbank%2Ffsb.py;h=145de7b3364c5dba8d7c13c871d08692cefac0d6;hb=3851cd1b9f5e758d8d22bb51c0dde9624d05e9d9;hp=834536af7e3e2b9f55863b165a33751f44076886;hpb=f99c3f74981b17803a3b4beb5f186008e188fa36;p=fulbank.git diff --git a/fulbank/fsb.py b/fulbank/fsb.py index 834536a..145de7b 100644 --- a/fulbank/fsb.py +++ b/fulbank/fsb.py @@ -243,26 +243,26 @@ class session(object): if resolve(fld, ("field",), None) == "userId": raise autherror(fld["message"]) raise - if data.get("status") != "USER_SIGN": - raise fmterror("unexpected bankid status: " + str(data.get("status"))) + st = data.get("status") vfy = linkurl(resolve(data, ("links", "next", "uri"))) fst = None while True: - time.sleep(3) - vdat = self._jreq(vfy) - st = vdat.get("status") if st in {"USER_SIGN", "CLIENT_NOT_STARTED"}: if st != fst: conv.message("Status: %s" % (st,), auth.conv.msg_info) fst = st - continue elif st == "COMPLETE": self._postlogin() return elif st == "CANCELLED": raise autherror("authentication cancelled") + elif st == "OUTSTANDING_TRANSACTION": + raise autherror("another bankid transaction already in progress") else: raise fmterror("unexpected bankid status: " + str(st)) + time.sleep(3) + vdat = self._jreq(vfy) + st = vdat.get("status") def keepalive(self): data = self._jreq("v5/framework/clientsession")