diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py index 5e2d5bf89da..448c7130894 100644 --- a/addons/anonymization/anonymization.py +++ b/addons/anonymization/anonymization.py @@ -4,14 +4,11 @@ from lxml import etree import os import base64 -try: - import cPickle as pickle -except ImportError: - import pickle import random import datetime from openerp.release import version_info from openerp.osv import fields, osv +from openerp.tools import pickle from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval as eval @@ -445,7 +442,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory): # save pickle: fn = open(abs_filepath, 'w') - pickle.dump(data, fn, pickle.HIGHEST_PROTOCOL) + pickle.dump(data, fn, -1) # update the anonymization fields: values = { diff --git a/addons/auth_oauth/res_users.py b/addons/auth_oauth/res_users.py index f277a6c5fc0..86328a56da2 100644 --- a/addons/auth_oauth/res_users.py +++ b/addons/auth_oauth/res_users.py @@ -10,6 +10,9 @@ from openerp.addons.auth_signup.models.res_partner import SignupError from openerp.osv import osv, fields from openerp import SUPERUSER_ID +from openerp.addons.base.res import res_users +res_users.USER_PRIVATE_FIELDS.append('oauth_access_token') + _logger = logging.getLogger(__name__) class res_users(osv.Model): diff --git a/openerp/http.py b/openerp/http.py index b34f7d72a90..80872340624 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -160,6 +160,8 @@ def redirect_with_hash(url, code=303): # See extensive test page at http://greenbytes.de/tech/tc/httpredirects/ if request.httprequest.user_agent.browser in ('firefox',): return werkzeug.utils.redirect(url, code) + if urlparse.urlparse(url, scheme='http').scheme not in ('http', 'https'): + url = 'http://' + url url = url.replace("'", "%27").replace("<", "%3C") return "
" % url diff --git a/openerp/sql_db.py b/openerp/sql_db.py index fe0502a4fa9..be7cf59d744 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -46,6 +46,19 @@ psycopg2.extensions.register_type(psycopg2.extensions.new_type((700, 701, 1700,) import tools + +from tools import parse_version as pv +if pv(psycopg2.__version__) < pv('2.7'): + from psycopg2._psycopg import QuotedString + def adapt_string(adapted): + """Python implementation of psycopg/psycopg2#459 from v2.7""" + if '\x00' in adapted: + raise ValueError("A string literal cannot contain NUL (0x00) characters.") + return QuotedString(adapted) + + psycopg2.extensions.register_adapter(str, adapt_string) + psycopg2.extensions.register_adapter(unicode, adapt_string) + from tools.func import frame_codeinfo from datetime import datetime as mdt from datetime import timedelta