diff --git a/bin/netsvc.py b/bin/netsvc.py index ea6513a5325..aadded32d7a 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -235,6 +235,8 @@ class OpenERPDispatcher: Logger().notifyChannel('%s' % title, LOG_DEBUG_RPC, pformat(msg)) def dispatch(self, service_name, method, params): + if service_name not in GROUPS['web-services']: + raise Exception('AccessDenied') try: self.log('service', service_name) self.log('method', method) @@ -280,7 +282,7 @@ class SSLSocket(object): return getattr(self.socket, name) class SimpleXMLRPCRequestHandler(GenericXMLRPCRequestHandler, SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): - rpc_paths = map(lambda s: '/xmlrpc/%s' % s, SERVICES.keys()) + rpc_paths = map(lambda s: '/xmlrpc/%s' % s, GROUPS.get('web-services', {}).keys()) class SecureXMLRPCRequestHandler(SimpleXMLRPCRequestHandler): def setup(self): diff --git a/bin/osv/osv.py b/bin/osv/osv.py index f6a364b7891..807ecad566d 100644 --- a/bin/osv/osv.py +++ b/bin/osv/osv.py @@ -86,7 +86,6 @@ class osv_pool(netsvc.Service): self._init = True self._init_parent = {} netsvc.Service.__init__(self, 'object_proxy', audience='') - self.joinGroup('web-services') self.exportMethod(self.obj_list) self.exportMethod(self.exec_workflow) self.exportMethod(self.execute)