From c8f24e42fea09f791bce8182e3a2aa8dd8cfa904 Mon Sep 17 00:00:00 2001 From: mbauskar Date: Mon, 1 May 2017 18:12:33 +0530 Subject: [PATCH] [minor] added int, float, long in eval globals --- frappe/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frappe/__init__.py b/frappe/__init__.py index dd70576529..e3d64e71f6 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -1324,6 +1324,12 @@ def bold(text): def safe_eval(code, eval_globals=None, eval_locals=None): '''A safer `eval`''' + whitelisted_globals = { + "int": int, + "float": float, + "long": long + } + if '__' in code: throw('Illegal rule {0}. Cannot use "__"'.format(bold(code))) @@ -1331,4 +1337,6 @@ def safe_eval(code, eval_globals=None, eval_locals=None): eval_globals = {} eval_globals['__builtins__'] = {} + eval_globals.update(whitelisted_globals) + return eval(code, eval_globals, eval_locals) \ No newline at end of file