diff options
| author | Xavier Morel <xmo@odoo.com> | 2019-01-11 16:10:36 +0000 |
|---|---|---|
| committer | Xavier Morel <xmo@odoo.com> | 2019-02-06 11:29:29 +0000 |
| commit | 0f167634be64c80ffd42f9933ad2f8cef4ee7f8f (patch) | |
| tree | 6a0b971782f7303e77436860b830e7a2525f1b42 /odoo/addons/test_access_rights | |
| parent | 6461a0f58cc79d16a16e3519009463c0abb27332 (diff) | |
[IMP] access error messages on fields with groups
Diffstat (limited to 'odoo/addons/test_access_rights')
| -rw-r--r-- | odoo/addons/test_access_rights/__manifest__.py | 5 | ||||
| -rw-r--r-- | odoo/addons/test_access_rights/data.xml | 5 | ||||
| -rw-r--r-- | odoo/addons/test_access_rights/models.py | 5 | ||||
| -rw-r--r-- | odoo/addons/test_access_rights/tests/test_feedback.py | 43 |
4 files changed, 57 insertions, 1 deletions
diff --git a/odoo/addons/test_access_rights/__manifest__.py b/odoo/addons/test_access_rights/__manifest__.py index bcccb90fd99..a44495cc54e 100644 --- a/odoo/addons/test_access_rights/__manifest__.py +++ b/odoo/addons/test_access_rights/__manifest__.py @@ -2,5 +2,8 @@ 'name': 'test of access rights and rules', 'description': "Testing of access restrictions", 'version': '0.0.1', - 'data': ['ir.model.access.csv'], + 'data': [ + 'ir.model.access.csv', + 'data.xml', + ], } diff --git a/odoo/addons/test_access_rights/data.xml b/odoo/addons/test_access_rights/data.xml new file mode 100644 index 00000000000..29fc5fdb290 --- /dev/null +++ b/odoo/addons/test_access_rights/data.xml @@ -0,0 +1,5 @@ +<odoo> + <record model="res.groups" id="test_group"> + <field name="name">Test Group</field> + </record> +</odoo> diff --git a/odoo/addons/test_access_rights/models.py b/odoo/addons/test_access_rights/models.py index 0d781e62ee6..3b575b30f17 100644 --- a/odoo/addons/test_access_rights/models.py +++ b/odoo/addons/test_access_rights/models.py @@ -9,6 +9,11 @@ class SomeObj(models.Model): val = fields.Integer() company_id = fields.Many2one('res.company') + forbidden = fields.Integer( + groups='test_access_rights.test_group,!base.group_no_one,base.group_user,!base.group_public', + default=5 + ) + forbidden2 = fields.Integer(groups='test_access_rights.test_group') class Container(models.Model): _name = 'test_access_right.container' diff --git a/odoo/addons/test_access_rights/tests/test_feedback.py b/odoo/addons/test_access_rights/tests/test_feedback.py index 0b104171ebe..4441eacfa9b 100644 --- a/odoo/addons/test_access_rights/tests/test_feedback.py +++ b/odoo/addons/test_access_rights/tests/test_feedback.py @@ -227,3 +227,46 @@ Note: this might be a multi-company issue. (records: [%s], uid: %d)""" % (self.record.id, self.user.id) ) + +class TestFieldGroupFeedback(Feedback): + + def setUp(self): + super().setUp() + self.record = self.env['test_access_right.some_obj'].create({ + 'val': 0, + }).sudo(self.user) + + + def test_read(self): + self.env.ref('base.group_no_one').write( + {'users': [(4, self.user.id)]}) + with self.assertRaises(AccessError) as ctx: + _ = self.record.forbidden + + self.assertEqual( + ctx.exception.args[0], + """The requested operation can not be completed due to security restrictions. + +Document type: Object For Test Access Right (test_access_right.some_obj) +Operation: read +Fields: +- forbidden (allowed for groups 'User types / Internal User', 'Test Group'; forbidden for groups 'Extra Rights / Technical Features', 'User types / Public')""" + ) + + def test_write(self): + self.env.ref('base.group_no_one').write( + {'users': [(4, self.user.id)]}) + + with self.assertRaises(AccessError) as ctx: + self.record.write({'forbidden': 1, 'forbidden2': 2}) + + self.assertEqual( + ctx.exception.args[0], + """The requested operation can not be completed due to security restrictions. + +Document type: Object For Test Access Right (test_access_right.some_obj) +Operation: write +Fields: +- forbidden (allowed for groups 'User types / Internal User', 'Test Group'; forbidden for groups 'Extra Rights / Technical Features', 'User types / Public') +- forbidden2 (allowed for groups 'Test Group')""" + ) |
