Model Acces: Unlink permission (delete) is now available
bzr revid: pinky-2144e3776f0b6f21b87235f2c7cd9da56c5a2c95master
parent
080b08b49a
commit
53b3c87be9
|
@ -639,6 +639,7 @@
|
|||
<field name="perm_read"/>
|
||||
<field name="perm_write"/>
|
||||
<field name="perm_create"/>
|
||||
<field name="perm_unlink"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -84,9 +84,10 @@ class ir_model_access(osv.osv):
|
|||
'perm_read': fields.boolean('Read Access'),
|
||||
'perm_write': fields.boolean('Write Access'),
|
||||
'perm_create': fields.boolean('Create Access'),
|
||||
'perm_unlink': fields.boolean('Delete Permission'),
|
||||
}
|
||||
def check(self, cr, uid, model_name, mode='read'):
|
||||
assert mode in ['read','write','create'], 'Invalid access mode for security'
|
||||
assert mode in ['read','write','create','unlink'], 'Invalid access mode for security'
|
||||
|
||||
# fetch the list of rules for this "permission type" on this model
|
||||
cr.execute('select group_id, perm_'+mode+' from ir_model_access a left join ir_model m on (a.model_id=m.id) where m.model=%s', (model_name,))
|
||||
|
|
|
@ -779,9 +779,7 @@ class orm(object):
|
|||
return res
|
||||
|
||||
def unlink(self, cr, uid, ids, context={}):
|
||||
#CHECKME: wouldn't it be better to check for the write access instead of create?
|
||||
#or alternatively, create a new 'delete' permission
|
||||
self.pool.get('ir.model.access').check(cr, uid, self._name, 'create')
|
||||
self.pool.get('ir.model.access').check(cr, uid, self._name, 'unlink')
|
||||
if not len(ids):
|
||||
return True
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
|
Loading…
Reference in New Issue