From 93cdfeb86a28b6c822b334a293c35b4a6930c100 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 30 Jan 2013 16:02:07 +0100 Subject: [PATCH] [REF] services: moved the object service to openerp.service.model. bzr revid: vmt@openerp.com-20130130150207-fz1ueou8prul05qa --- openerp/netsvc.py | 2 ++ openerp/service/model.py | 17 +++++++++++++++++ openerp/service/web_services.py | 21 --------------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 63eddaaab6c..1051a761af3 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -113,6 +113,8 @@ class ExportService(object): @classmethod def getService(cls,name): + if name == 'object': + return openerp.service.model if name == 'db': return openerp.service.db return cls._services[name] diff --git a/openerp/service/model.py b/openerp/service/model.py index 10147fd799a..a78f5e94018 100644 --- a/openerp/service/model.py +++ b/openerp/service/model.py @@ -9,8 +9,25 @@ import openerp from openerp.tools.translate import translate from openerp.osv.orm import except_orm +import security + _logger = logging.getLogger(__name__) +def dispatch(method, params): + (db, uid, passwd ) = params[0:3] + threading.current_thread().uid = uid + params = params[3:] + if method == 'obj_list': + raise NameError("obj_list has been discontinued via RPC as of 6.0, please query ir.model directly!") + if method not in ['execute', 'execute_kw', 'exec_workflow']: + raise NameError("Method not available %s" % method) + security.check(db,uid,passwd) + openerp.modules.registry.RegistryManager.check_registry_signaling(db) + fn = globals()[method] + res = fn(db, uid, *params) + openerp.modules.registry.RegistryManager.signal_caches_change(db) + return res + def check(f): @wraps(f) def wrapper(dbname, *args, **kwargs): diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index dbcbcef34ef..3a89f3fb615 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -255,26 +255,6 @@ GNU Public Licence. return sql_db.sql_counter -class objects_proxy(netsvc.ExportService): - def __init__(self, name="object"): - netsvc.ExportService.__init__(self,name) - - def dispatch(self, method, params): - (db, uid, passwd ) = params[0:3] - threading.current_thread().uid = uid - params = params[3:] - if method == 'obj_list': - raise NameError("obj_list has been discontinued via RPC as of 6.0, please query ir.model directly!") - if method not in ['execute', 'execute_kw', 'exec_workflow']: - raise NameError("Method not available %s" % method) - security.check(db,uid,passwd) - openerp.modules.registry.RegistryManager.check_registry_signaling(db) - fn = getattr(openerp.service.model, method) - res = fn(db, uid, *params) - openerp.modules.registry.RegistryManager.signal_caches_change(db) - return res - - # # TODO: set a maximum report number per user to avoid DOS attacks # @@ -413,7 +393,6 @@ class report_spool(netsvc.ExportService): def start_service(): common() - objects_proxy() report_spool()