From d92606cea90a0af3e7ad4e8f85dd745f2cd2da98 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 23 May 2019 18:21:15 +0530 Subject: [PATCH] fix(sessions): handle separate ways of session expiry in postgres and mariadb --- frappe/public/js/frappe/utils/datatype.js | 2 +- frappe/sessions.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/utils/datatype.js b/frappe/public/js/frappe/utils/datatype.js index fd91013f2b..0f73526e04 100644 --- a/frappe/public/js/frappe/utils/datatype.js +++ b/frappe/public/js/frappe/utils/datatype.js @@ -13,7 +13,7 @@ window.cint = function(v, def) { return 0; v = v + ''; if (v !== "0") v = lstrip(v, ['0']); - v = parseInt(v); + v = parseInt(v); // eslint-ignore-line if (isNaN(v)) v = def === undefined ? 0 : def; return v; }; diff --git a/frappe/sessions.py b/frappe/sessions.py index 1ada3faf28..ec6d1e899d 100644 --- a/frappe/sessions.py +++ b/frappe/sessions.py @@ -102,7 +102,7 @@ def get_expired_sessions(): expired += frappe.db.sql_list("""SELECT `sid` FROM `tabSessions` WHERE (NOW() - `lastupdate`) > %s - AND device = %s""", (get_expiry_in_seconds(device = device), device)) + AND device = %s""", (get_expiry_period_for_query(device), device)) return expired @@ -319,7 +319,7 @@ class Session: SELECT `user`, `sessiondata` FROM `tabSessions` WHERE `sid`=%s AND (NOW() - lastupdate) < %s - """, (self.sid, get_expiry_in_seconds(device = self.device)), debug=1) + """, (self.sid, get_expiry_period_for_query(self.device)), debug=1) if rec: data = frappe._dict(eval(rec and rec[0][1] or '{}')) @@ -376,6 +376,12 @@ class Session: return updated_in_db +def get_expiry_period_for_query(device=None): + if frappe.db.db_type == 'postgres': + return get_expiry_period(device) + else: + return get_expiry_in_seconds(device=device) + def get_expiry_in_seconds(expiry=None, device=None): if not expiry: expiry = get_expiry_period(device)