From b057a07259c465afac0ee13727a8dac40b978470 Mon Sep 17 00:00:00 2001 From: shadrak gurupnor Date: Wed, 15 Sep 2021 16:07:03 +0530 Subject: [PATCH] fix(minor): code clean up --- frappe/rate_limiter.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/frappe/rate_limiter.py b/frappe/rate_limiter.py index 1927d6c47b..1255b10ed7 100644 --- a/frappe/rate_limiter.py +++ b/frappe/rate_limiter.py @@ -109,18 +109,20 @@ def rate_limit(key: str = None, limit: Union[int, Callable] = 5, seconds: int = _limit = limit() if callable(limit) else limit - ip = frappe.local.request_ip + ip = frappe.local.request_ip if ip_based is True else None - if key is None and ip_based is False: - frappe.throw(_('Either key or IP flag is required.')) - elif key is None: - identity = ip - elif ip_based is False: - identity = frappe.form_dict[key] - else: - user_key=frappe.form_dict[key] + user_key = frappe.form_dict[key] if key else None + + identity = None + + if key and ip_based: identity = ":".join([ip, user_key]) + identity = identity or ip or user_key + + if not identity: + frappe.throw(_('Either key or IP flag is required.')) + cache_key = f"rl:{frappe.form_dict.cmd}:{identity}" value = frappe.cache().get(cache_key) or 0