2
0
mirror of https://github.com/frappe/frappe.git synced 2024-06-12 22:32:20 +00:00

refactor(twofactor): reduce number of calls to redis

Pipeline wherever possible, set expiry while saving value

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
This commit is contained in:
Akhil Narang 2024-02-01 13:22:27 +05:30
parent 762290db9a
commit 7dddc9e4f1
No known key found for this signature in database
GPG Key ID: 9DCC61E211BF645F

View File

@ -96,16 +96,17 @@ def cache_2fa_data(user, token, otp_secret, tmp_id):
pwd = frappe.form_dict.get("pwd")
verification_method = get_verification_method()
pipeline = frappe.cache.pipeline()
# set increased expiry time for SMS and Email
if verification_method in ["SMS", "Email"]:
expiry_time = frappe.flags.token_expiry or 300
frappe.cache.set(tmp_id + "_token", token)
frappe.cache.expire(tmp_id + "_token", expiry_time)
pipeline.set(tmp_id + "_token", token, expiry_time)
else:
expiry_time = frappe.flags.otp_expiry or 180
for k, v in {"_usr": user, "_pwd": pwd, "_otp_secret": otp_secret}.items():
frappe.cache.set(f"{tmp_id}{k}", v)
frappe.cache.expire(f"{tmp_id}{k}", expiry_time)
pipeline.set(f"{tmp_id}{k}", v, expiry_time)
pipeline.execute()
def two_factor_is_enabled_for_(user):