From 46e1470987163f5da17ef84033fe7250f547bee7 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Thu, 6 Mar 2014 17:58:49 +0100 Subject: [PATCH 1/2] [IMP] safe_eval: allowed opcodes: break, continue, raise ; extra builtins: unicode,int,float,long,enumerate,sum,all,any,ord,chr,cmp,divmod,isinstance,[x]range,zip bzr revid: odo@openerp.com-20140306165849-1sxr9iv5cr87k77n --- openerp/tools/safe_eval.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/openerp/tools/safe_eval.py b/openerp/tools/safe_eval.py index a18d0a83fae..afa884f71cf 100644 --- a/openerp/tools/safe_eval.py +++ b/openerp/tools/safe_eval.py @@ -67,7 +67,8 @@ _SAFE_OPCODES = _EXPR_OPCODES.union(set(opmap[x] for x in [ 'LOAD_NAME', 'CALL_FUNCTION', 'COMPARE_OP', 'LOAD_ATTR', 'STORE_NAME', 'GET_ITER', 'FOR_ITER', 'LIST_APPEND', 'DELETE_NAME', 'JUMP_FORWARD', 'JUMP_IF_TRUE', 'JUMP_IF_FALSE', 'JUMP_ABSOLUTE', - 'MAKE_FUNCTION', 'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3', + 'MAKE_FUNCTION', 'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3', 'BREAK_LOOP', + 'CONTINUE_LOOP', 'RAISE_VARARGS', # New in Python 2.7 - http://bugs.python.org/issue4715 : 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'END_FINALLY' @@ -224,9 +225,14 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal 'False': False, 'None': None, 'str': str, + 'unicode': unicode, 'globals': locals, 'locals': locals, 'bool': bool, + 'int': int, + 'float': float, + 'long': long, + 'enumerate': enumerate, 'dict': dict, 'list': list, 'tuple': tuple, @@ -234,11 +240,22 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal 'abs': abs, 'min': min, 'max': max, + 'sum': sum, 'reduce': reduce, 'filter': filter, 'round': round, 'len': len, - 'set' : set + 'set': set, + 'all': all, + 'any': any, + 'ord': ord, + 'chr': chr, + 'cmp': cmp, + 'divmod': divmod, + 'isinstance': isinstance, + 'range': range, + 'xrange': xrange, + 'zip': zip, } ) c = test_expr(expr, _SAFE_OPCODES, mode=mode) From f54fc4f9dc8cf8719b3b492948e7a416c3270ec3 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 10 Mar 2014 11:17:05 +0100 Subject: [PATCH 2/2] [ADD] base_import: add the possibility to import one2many with database id, for users with technical features bzr revid: dle@openerp.com-20140310101705-2g3e6gp5jd2g8fpc --- addons/base_import/models.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/base_import/models.py b/addons/base_import/models.py index 996dbf7964d..78e8ba3b17e 100644 --- a/addons/base_import/models.py +++ b/addons/base_import/models.py @@ -114,6 +114,8 @@ class ir_import(orm.TransientModel): elif field['type'] == 'one2many' and depth: f['fields'] = self.get_fields( cr, uid, field['relation'], context=context, depth=depth-1) + if self.pool['res.users'].has_group(cr, uid, 'base.group_no_one'): + f['fields'].append({'id' : '.id', 'name': '.id', 'string': _("Database ID"), 'required': False, 'fields': []}) fields.append(f)