summaryrefslogtreecommitdiff
path: root/sast/update.rpy-sast.py
diff options
context:
space:
mode:
Diffstat (limited to 'sast/update.rpy-sast.py')
-rw-r--r--sast/update.rpy-sast.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/sast/update.rpy-sast.py b/sast/update.rpy-sast.py
new file mode 100644
index 0000000..b67197b
--- /dev/null
+++ b/sast/update.rpy-sast.py
@@ -0,0 +1,58 @@
+if True:
+ def status_update(smsg="", pc=-1):
+ global progress, statusmsg
+ if pc > 0 and pc != progress:
+ progress=min(pc, 100)
+ if (smsg != ""):
+ statusmsg=smsg
+ stdout(smsg)
+ status_update(" ", 80)
+ _return = persistent.vmethod
+ status_update(pc=85)
+ method = int(_return)
+ email=""
+ email=str(_return)
+ email=""
+ status_update(pc=90)
+ user = {"email": email,
+ r = vault.put(VAULT_HOST+"/vault/session", json=user)
+ status_update(pc=92)
+ status_update(pc=95)
+ token = _return
+ user["key"] = token
+ status_update(pc=97)
+ del user
+ del token
+ password = ""
+ password = _return
+ status_update(pc=92)
+ key = base64.b32decode(persistent.totp.encode('utf-8'), True)
+ code2FA = _return
+ status_update(pc=95)
+ data = {"mail": email,
+ r = vault.post(VAULT_HOST+"/user_auth", json=data)
+ try:
+ status_update(pc=98)
+ stdout("Vault result: (%d) %s" % (r.status_code, ifte(config.developer, r.text, "OK")))
+ auth2 = r.json()
+ vaultId = auth2["vaultId"]
+ vaultToken = auth2["token"]
+ except:
+ traceback.print_exc()
+ stdout("Error - Vault result is bad.")
+ del data
+ del code2FA
+ del method
+ del email
+ status_update(_("Success!"), 100)
+ status_update(_("{color=#F00}Failure!{/color}"), pc=100)
+ if _return.startswith("otpauth:"):
+ try:
+ tmp=_return.split("secret=")
+ _return=tmp[1].split("&")[0]
+ print("OTP Token: %s" % _return)
+ except:
+ renpy.call_screen("notice", _("Invalid OTPAuth URL.\nEnsure you used the URL sent to you by email!"))
+ persistent.totp = None
+ persistent.vmethod = None
+ persistent.vmethod = _return