From 4033ccc129e5463eb97b5d867a13220c10cd0dc6 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 16 Aug 2016 12:16:29 +0200 Subject: [PATCH] [REM] openerp.http: discard deprecated methods and properties --- addons/web/controllers/main.py | 4 +- addons/web/models/ir_http.py | 2 +- addons/website_blog/controllers/main.py | 6 +- addons/website_slides/controllers/main.py | 2 +- openerp/http.py | 201 +--------------------- 5 files changed, 8 insertions(+), 207 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 5be3a1a3ef6..186e9715a8c 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -747,7 +747,7 @@ class Session(http.Controller): :return: A key identifying the saved action. :rtype: integer """ - return request.httpsession.save_action(the_action) + return request.session.save_action(the_action) @http.route('/web/session/get_session_action', type='json', auth="user") def get_session_action(self, key): @@ -760,7 +760,7 @@ class Session(http.Controller): :return: The saved action or None. :rtype: anything """ - return request.httpsession.get_action(key) + return request.session.get_action(key) @http.route('/web/session/check', type='json', auth="user") def check(self): diff --git a/addons/web/models/ir_http.py b/addons/web/models/ir_http.py index f11798cf123..8d64ab0ad1d 100644 --- a/addons/web/models/ir_http.py +++ b/addons/web/models/ir_http.py @@ -23,7 +23,7 @@ class Http(models.AbstractModel): display_switch_company_menu = user.has_group('base.group_multi_company') and len(user.company_ids) > 1 version_info = odoo.service.common.exp_version() return { - "session_id": request.session_id, + "session_id": request.session.sid, "uid": request.session.uid, "is_admin": request.env.user.has_group('base.group_system'), "is_superuser": request.env.user._is_superuser(), diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py index 417f74da2c4..f66e3a4a6aa 100644 --- a/addons/website_blog/controllers/main.py +++ b/addons/website_blog/controllers/main.py @@ -247,9 +247,9 @@ class WebsiteBlog(http.Controller): } response = request.render("website_blog.blog_post_complete", values) - request.session[request.session_id] = request.session.get(request.session_id, []) - if not (blog_post.id in request.session[request.session_id]): - request.session[request.session_id].append(blog_post.id) + request.session[request.session.sid] = request.session.get(request.session.sid, []) + if not (blog_post.id in request.session[request.session.sid]): + request.session[request.session.sid].append(blog_post.id) # Increase counter blog_post.sudo().write({ 'visits': blog_post.visits+1, diff --git a/addons/website_slides/controllers/main.py b/addons/website_slides/controllers/main.py index a0c3d0cdc49..ed9b374c70c 100644 --- a/addons/website_slides/controllers/main.py +++ b/addons/website_slides/controllers/main.py @@ -22,7 +22,7 @@ class WebsiteSlides(http.Controller): } def _set_viewed_slide(self, slide, view_mode): - slide_key = '%s_%s' % (view_mode, request.session_id) + slide_key = '%s_%s' % (view_mode, request.session.sid) viewed_slides = request.session.setdefault(slide_key, list()) if slide.id not in viewed_slides: if view_mode == 'slide': diff --git a/openerp/http.py b/openerp/http.py index 033e3469065..12f68b4725f 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -185,7 +185,6 @@ class WebRequest(object): def __init__(self, httprequest): self.httprequest = httprequest self.httpresponse = None - self.httpsession = httprequest.session self.disable_db = False self.uid = None self.endpoint = None @@ -342,18 +341,6 @@ class WebRequest(object): warnings.warn('please use request.registry and request.cr directly', DeprecationWarning) yield (self.registry, self.cr) - @lazy_property - def session_id(self): - """ - opaque identifier for the :class:`OpenERPSession` instance of - the current request - - .. deprecated:: 8.0 - - Use the ``sid`` attribute on :attr:`.session` - """ - return self.session.sid - @property def registry(self): """ @@ -364,7 +351,7 @@ class WebRequest(object): use :attr:`.env` """ - return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None + return openerp.registry(self.db) if self.db else None @property def db(self): @@ -374,16 +361,6 @@ class WebRequest(object): """ return self.session.db if not self.disable_db else None - @lazy_property - def httpsession(self): - """ HTTP session data - - .. deprecated:: 8.0 - - Use :attr:`.session` instead. - """ - return self.session - def csrf_token(self, time_limit=3600): """ Generates and returns a CSRF token for the current session @@ -741,16 +718,6 @@ def to_jsonable(o): return tmp return ustr(o) -def jsonrequest(f): - """ - .. deprecated:: 8.0 - Use the :func:`~openerp.http.route` decorator instead. - """ - base = f.__name__.lstrip('/') - if f.__name__ == "index": - base = "" - return route([base, base + "/"], type="json", auth="user", combine=True)(f) - class HttpRequest(WebRequest): """ Handler for the ``http`` request type. @@ -894,17 +861,6 @@ more details. """ return werkzeug.exceptions.NotFound(description) -def httprequest(f): - """ - .. deprecated:: 8.0 - - Use the :func:`~openerp.http.route` decorator instead. - """ - base = f.__name__.lstrip('/') - if f.__name__ == "index": - base = "" - return route([base, base + "/"], type="http", auth="user", combine=True)(f) - #---------------------------------------------------------- # Controller and route registration #---------------------------------------------------------- @@ -1028,57 +984,6 @@ class AuthenticationError(Exception): class SessionExpiredException(Exception): pass -class Service(object): - """ - .. deprecated:: 8.0 - Use :func:`dispatch_rpc` instead. - """ - def __init__(self, session, service_name): - self.session = session - self.service_name = service_name - - def __getattr__(self, method): - def proxy_method(*args): - result = dispatch_rpc(self.service_name, method, args) - return result - return proxy_method - -class Model(object): - """ - .. deprecated:: 8.0 - Use the registry and cursor in :data:`request` instead. - """ - def __init__(self, session, model): - self.session = session - self.model = model - self.proxy = self.session.proxy('object') - - def __getattr__(self, method): - self.session.assert_valid() - def proxy(*args, **kw): - # Can't provide any retro-compatibility for this case, so we check it and raise an Exception - # to tell the programmer to adapt his code - if not request.db or not request.uid or self.session.db != request.db \ - or self.session.uid != request.uid: - raise Exception("Trying to use Model with badly configured database or user.") - - if method.startswith('_'): - raise Exception("Access denied") - mod = request.registry[self.model] - meth = getattr(mod, method) - # make sure to instantiate an environment - cr = request.env.cr - result = meth(cr, request.uid, *args, **kw) - # reorder read - if method == "read": - if isinstance(result, list) and len(result) > 0 and "id" in result[0]: - index = {} - for r in result: - index[r['id']] = r - result = [index[x] for x in args[0] if x in index] - return result - return proxy - class OpenERPSession(werkzeug.contrib.sessions.Session): def __init__(self, *args, **kwargs): self.inited = False @@ -1186,110 +1091,6 @@ class OpenERPSession(werkzeug.contrib.sessions.Session): context['lang'] = lang or 'en_US' - # Deprecated to be removed in 9 - - """ - Damn properties for retro-compatibility. All of that is deprecated, - all of that. - """ - @property - def _db(self): - return self.db - @_db.setter - def _db(self, value): - self.db = value - @property - def _uid(self): - return self.uid - @_uid.setter - def _uid(self, value): - self.uid = value - @property - def _login(self): - return self.login - @_login.setter - def _login(self, value): - self.login = value - @property - def _password(self): - return self.password - @_password.setter - def _password(self, value): - self.password = value - - def send(self, service_name, method, *args): - """ - .. deprecated:: 8.0 - Use :func:`dispatch_rpc` instead. - """ - return dispatch_rpc(service_name, method, args) - - def proxy(self, service): - """ - .. deprecated:: 8.0 - Use :func:`dispatch_rpc` instead. - """ - return Service(self, service) - - def assert_valid(self, force=False): - """ - .. deprecated:: 8.0 - Use :meth:`check_security` instead. - - Ensures this session is valid (logged into the openerp server) - """ - if self.uid and not force: - return - # TODO use authenticate instead of login - self.uid = self.proxy("common").login(self.db, self.login, self.password) - if not self.uid: - raise AuthenticationError("Authentication failure") - - def ensure_valid(self): - """ - .. deprecated:: 8.0 - Use :meth:`check_security` instead. - """ - if self.uid: - try: - self.assert_valid(True) - except Exception: - self.uid = None - - def execute(self, model, func, *l, **d): - """ - .. deprecated:: 8.0 - Use the registry and cursor in :data:`request` instead. - """ - model = self.model(model) - r = getattr(model, func)(*l, **d) - return r - - def exec_workflow(self, model, id, signal): - """ - .. deprecated:: 8.0 - Use the registry and cursor in :data:`request` instead. - """ - self.assert_valid() - r = self.proxy('object').exec_workflow(self.db, self.uid, self.password, model, signal, id) - return r - - def model(self, model): - """ - .. deprecated:: 8.0 - Use the registry and cursor in :data:`request` instead. - - Get an RPC proxy for the object ``model``, bound to this session. - - :param model: an OpenERP model name - :type model: str - :rtype: a model object - """ - if not self.db: - raise SessionExpiredException("Session expired") - - return Model(self, model) - def save_action(self, action): """ This method store an action object in the session and returns an integer