Browse Source

[minor] added int, float, long in eval globals

version-14
mbauskar 8 years ago
committed by Nabin Hait
parent
commit
c8f24e42fe
1 changed files with 8 additions and 0 deletions
  1. +8
    -0
      frappe/__init__.py

+ 8
- 0
frappe/__init__.py View File

@@ -1324,6 +1324,12 @@ def bold(text):


def safe_eval(code, eval_globals=None, eval_locals=None): def safe_eval(code, eval_globals=None, eval_locals=None):
'''A safer `eval`''' '''A safer `eval`'''
whitelisted_globals = {
"int": int,
"float": float,
"long": long
}
if '__' in code: if '__' in code:
throw('Illegal rule {0}. Cannot use "__"'.format(bold(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 = {}
eval_globals['__builtins__'] = {} eval_globals['__builtins__'] = {}


eval_globals.update(whitelisted_globals)

return eval(code, eval_globals, eval_locals) return eval(code, eval_globals, eval_locals)

Loading…
Cancel
Save