[ADD] test_access_rights: add test writing on many2many field with access rules
This commit is contained in:
parent
231e026936
commit
40be041ae7
|
@ -1,2 +1,3 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_test_access_right_some_obj,access_test_access_right_some_obj,model_test_access_right_some_obj,,1,1,1,1
|
||||
access_test_access_right_container,access_test_access_right_container,model_test_access_right_container,,1,1,1,1
|
||||
|
|
|
|
@ -4,3 +4,9 @@ class SomeObj(models.Model):
|
|||
_name = 'test_access_right.some_obj'
|
||||
|
||||
val = fields.Integer()
|
||||
|
||||
|
||||
class Container(models.Model):
|
||||
_name = 'test_access_right.container'
|
||||
|
||||
some_ids = fields.Many2many('test_access_right.some_obj', 'test_access_right_rel', 'container_id', 'some_id')
|
||||
|
|
|
@ -31,3 +31,25 @@ class TestRules(TransactionCase):
|
|||
# but this should
|
||||
with self.assertRaises(openerp.exceptions.AccessError):
|
||||
self.assertEqual(browse2.val, -1)
|
||||
|
||||
def test_many2many(self):
|
||||
""" Test assignment of many2many field where rules apply. """
|
||||
ids = [self.id1, self.id2]
|
||||
|
||||
# create container as superuser, connected to all some_objs
|
||||
container_admin = self.env['test_access_right.container'].create({'some_ids': [(6, 0, ids)]})
|
||||
self.assertItemsEqual(container_admin.some_ids.ids, ids)
|
||||
|
||||
# check the container as the public user
|
||||
container_user = container_admin.sudo(self.browse_ref('base.public_user'))
|
||||
self.assertItemsEqual(container_user.some_ids.ids, [self.id1])
|
||||
|
||||
# this should not fail
|
||||
container_user.write({'some_ids': [(6, 0, ids)]})
|
||||
self.assertItemsEqual(container_user.some_ids.ids, [self.id1])
|
||||
self.assertItemsEqual(container_admin.some_ids.ids, ids)
|
||||
|
||||
# this removes accessible records only
|
||||
container_user.write({'some_ids': [(5,)]})
|
||||
self.assertItemsEqual(container_user.some_ids.ids, [])
|
||||
self.assertItemsEqual(container_admin.some_ids.ids, [self.id2])
|
||||
|
|
Loading…
Reference in New Issue