summaryrefslogtreecommitdiff
path: root/addons/document_webdav
diff options
context:
space:
mode:
authordle@openerp.com <>2012-12-13 14:55:05 +0100
committerdle@openerp.com <>2012-12-13 14:55:05 +0100
commit8efb6d3ea3e42dedd89937c0a5512728228e68ba (patch)
tree1809bc6c34c0deb3f21b606700bdfe283c206dc9 /addons/document_webdav
parent8256b41f0a440660895f3157b417ef20d3615961 (diff)
[ADD]filter db
bzr revid: dle@openerp.com-20121213135505-fnmlrvscc6upliiv
Diffstat (limited to 'addons/document_webdav')
-rw-r--r--addons/document_webdav/dav_fs.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py
index 0a9df3d50d4..5b3e4272042 100644
--- a/addons/document_webdav/dav_fs.py
+++ b/addons/document_webdav/dav_fs.py
@@ -24,7 +24,9 @@ import sql_db
import os
import time
import errno
+import re
+import openerp
import netsvc
import urlparse
try:
@@ -361,7 +363,8 @@ class openerp_dav_handler(dav_interface):
return self.parent.get_baseuri(self) + '/'.join(ajoin)
@memoize(4)
- def db_list(self):
+ def _all_db_list(self):
+ """return all databases who have module document_webdav installed"""
s = netsvc.ExportService.getService('db')
result = s.exp_list()
self.db_name_list=[]
@@ -370,7 +373,7 @@ class openerp_dav_handler(dav_interface):
try:
db = sql_db.db_connect(db_name)
cr = db.cursor()
- cr.execute("SELECT id FROM ir_module_module WHERE name = 'document' AND state='installed' ")
+ cr.execute("SELECT id FROM ir_module_module WHERE name = 'document_webdav' AND state='installed' ")
res=cr.fetchone()
if res and len(res):
self.db_name_list.append(db_name)
@@ -381,6 +384,15 @@ class openerp_dav_handler(dav_interface):
cr.close()
return self.db_name_list
+ def db_list(self, uri):
+ # import pudb;pudb.set_trace()
+ u = urlparse.urlsplit(uri)
+ h = u.hostname
+ d = h.split('.')[0]
+ r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d',d)
+ dbs = [i for i in self._all_db_list() if re.match(r, i)]
+ return dbs
+
def get_childs(self,uri, filters=None):
""" return the child objects as self.baseuris for the given URI """
self.parent.log_message('get children: %s' % uri)
@@ -388,7 +400,7 @@ class openerp_dav_handler(dav_interface):
if not dbname:
if cr: cr.close()
- res = map(lambda x: self.urijoin(x), self.db_list())
+ res = map(lambda x: self.urijoin(x), self.db_list(uri))
return res
result = []
node = self.uri2object(cr, uid, pool, uri2[:])