diff options
| author | Turkesh Patel (Open ERP) <tpa@tinyerp.com> | 2013-08-21 11:52:30 +0530 |
|---|---|---|
| committer | Turkesh Patel (Open ERP) <tpa@tinyerp.com> | 2013-08-21 11:52:30 +0530 |
| commit | 62ae5eefaa8cc16aa57152d98f1f0264cf11d049 (patch) | |
| tree | 37ddfad98cac7ab0def17c0f15d5e0b47642396f /addons/document/document.py | |
| parent | a43756743d5da2b9fbec26a50c30a5d54fd8c2ff (diff) | |
| parent | c02afb45fa74fb1490b4b4965f987906ee718eb6 (diff) | |
[MRG] merge with lp:openobject-addons
bzr revid: tpa@tinyerp.com-20130821062230-41mvdjdi1lbigq29
Diffstat (limited to 'addons/document/document.py')
| -rw-r--r-- | addons/document/document.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/addons/document/document.py b/addons/document/document.py index 54f12e204fe..91af97246b8 100644 --- a/addons/document/document.py +++ b/addons/document/document.py @@ -68,11 +68,14 @@ class document_file(osv.osv): ] def check(self, cr, uid, ids, mode, context=None, values=None): - """Check access wrt. res_model, relax the rule of ir.attachment parent - With 'document' installed, everybody will have access to attachments of - any resources they can *read*. - """ - return super(document_file, self).check(cr, uid, ids, mode='read', context=context, values=values) + """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: + self.pool.get('ir.model.access').check(cr, uid, 'document.directory', mode) + + # 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' |
