[IMP] use of literal_eval from ast instead of const_eval from tools, as per Olivier recommendation

bzr revid: qdp-launchpad@openerp.com-20121009152828-3bdxpatkrl1qmyfi
This commit is contained in:
Quentin (OpenERP) 2012-10-09 17:28:28 +02:00
parent c98de15a09
commit 90fc4d6651
2 changed files with 4 additions and 3 deletions

View File

@ -60,7 +60,8 @@ import openerp
import openerp.netsvc as netsvc
import openerp.tools as tools
from openerp.tools.config import config
from openerp.tools.safe_eval import const_eval, safe_eval as eval
from openerp.tools.safe_eval import safe_eval as eval
from ast import literal_eval
from openerp.tools.translate import _
from openerp import SUPERUSER_ID
from query import Query
@ -1734,7 +1735,7 @@ class BaseModel(object):
transfer_field_to_modifiers(field, modifiers)
if node.get('options'):
try:
node.set('options', simplejson.dumps(const_eval(node.get('options'))))
node.set('options', simplejson.dumps(literal_eval(node.get('options'))))
except Exception, msg:
raise except_orm('Invalide Python code in %s'%(node.get('options')), msg[0])

View File

@ -46,7 +46,7 @@ _ALLOWED_MODULES = ['_strptime', 'time']
_CONST_OPCODES = set(opmap[x] for x in [
'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'ROT_FOUR', 'DUP_TOP', 'DUP_TOPX',
'POP_BLOCK','SETUP_LOOP', 'BUILD_LIST', 'BUILD_MAP', 'BUILD_TUPLE',
'LOAD_CONST', 'RETURN_VALUE', 'STORE_SUBSCR', 'STORE_MAP', 'LOAD_NAME'] if x in opmap)
'LOAD_CONST', 'RETURN_VALUE', 'STORE_SUBSCR'] if x in opmap)
_EXPR_OPCODES = _CONST_OPCODES.union(set(opmap[x] for x in [
'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT',