Model Acces: Unlink permission (delete) is now available
bzr revid: pinky-2144e3776f0b6f21b87235f2c7cd9da56c5a2c95
This commit is contained in:
parent
080b08b49a
commit
53b3c87be9
|
@ -639,6 +639,7 @@
|
||||||
<field name="perm_read"/>
|
<field name="perm_read"/>
|
||||||
<field name="perm_write"/>
|
<field name="perm_write"/>
|
||||||
<field name="perm_create"/>
|
<field name="perm_create"/>
|
||||||
|
<field name="perm_unlink"/>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -84,9 +84,10 @@ class ir_model_access(osv.osv):
|
||||||
'perm_read': fields.boolean('Read Access'),
|
'perm_read': fields.boolean('Read Access'),
|
||||||
'perm_write': fields.boolean('Write Access'),
|
'perm_write': fields.boolean('Write Access'),
|
||||||
'perm_create': fields.boolean('Create Access'),
|
'perm_create': fields.boolean('Create Access'),
|
||||||
|
'perm_unlink': fields.boolean('Delete Permission'),
|
||||||
}
|
}
|
||||||
def check(self, cr, uid, model_name, mode='read'):
|
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
|
# 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,))
|
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
|
return res
|
||||||
|
|
||||||
def unlink(self, cr, uid, ids, context={}):
|
def unlink(self, cr, uid, ids, context={}):
|
||||||
#CHECKME: wouldn't it be better to check for the write access instead of create?
|
self.pool.get('ir.model.access').check(cr, uid, self._name, 'unlink')
|
||||||
#or alternatively, create a new 'delete' permission
|
|
||||||
self.pool.get('ir.model.access').check(cr, uid, self._name, 'create')
|
|
||||||
if not len(ids):
|
if not len(ids):
|
||||||
return True
|
return True
|
||||||
wf_service = netsvc.LocalService("workflow")
|
wf_service = netsvc.LocalService("workflow")
|
||||||
|
|
Loading…
Reference in New Issue