Model Acces: Unlink permission (delete) is now available

bzr revid: pinky-2144e3776f0b6f21b87235f2c7cd9da56c5a2c95
This commit is contained in:
pinky 2006-12-26 12:40:58 +00:00
parent 080b08b49a
commit 53b3c87be9
3 changed files with 4 additions and 4 deletions

View File

@ -639,6 +639,7 @@
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</form>
</field>
</record>

View File

@ -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,))

View File

@ -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")