summaryrefslogtreecommitdiff
path: root/addons/document/document.py
diff options
context:
space:
mode:
authorMartin Trigaux <mat@openerp.com>2013-07-22 15:27:15 +0200
committerMartin Trigaux <mat@openerp.com>2013-07-22 15:27:15 +0200
commit8ffa0fec98393e151ab5c23ee1db8998ef55e196 (patch)
tree9cb4c4ba6400804c34ae2511dfa18d90e0b35c52 /addons/document/document.py
parent5480f2958e34d5cb36de2f9506cee6516c4f4967 (diff)
[FIX] better check
bzr revid: mat@openerp.com-20130722132715-r67xneyv85lbsung
Diffstat (limited to 'addons/document/document.py')
-rw-r--r--addons/document/document.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/addons/document/document.py b/addons/document/document.py
index a841f071b91..a39be42e77c 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -69,17 +69,14 @@ class document_file(osv.osv):
]
def check(self, cr, uid, ids, mode, context=None, values=None):
+ """Overwrite check to verify access on directory to validate specifications of doc/access_permissions.rst"""
super(document_file, self).check(cr, uid, ids, mode, context=context, values=values)
if ids:
- # use SQL to avoid recursive loop on read
- cr.execute('SELECT id, parent_id from ir_attachment WHERE id in %s', (tuple(ids),))
-
- parent_ids = []
- for attach_id, attach_parent in cr.fetchall():
- if attach_parent:
- parent_ids.append(attach_parent)
+ self.pool.get('ir.model.access').check(cr, uid, 'document.directory', mode)
- self.pool.get('document.directory').check_access_rule(cr, uid, parent_ids, mode, context=context)
+ # use SQL to avoid recursive loop on read
+ cr.execute('SELECT DISTINCT parent_id from ir_attachment WHERE id in %s AND parent_id is not NULL', (tuple(ids),))
+ self.pool.get('document.directory').check_access_rule(cr, uid, [parent_id for (parent_id,) in cr.fetchall()], mode, context=context)
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
# Grab ids, bypassing 'count'