summaryrefslogtreecommitdiff
path: root/odoo/addons/test_access_rights
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2019-01-11 16:10:36 +0000
committerXavier Morel <xmo@odoo.com>2019-02-06 11:29:29 +0000
commit0f167634be64c80ffd42f9933ad2f8cef4ee7f8f (patch)
tree6a0b971782f7303e77436860b830e7a2525f1b42 /odoo/addons/test_access_rights
parent6461a0f58cc79d16a16e3519009463c0abb27332 (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__.py5
-rw-r--r--odoo/addons/test_access_rights/data.xml5
-rw-r--r--odoo/addons/test_access_rights/models.py5
-rw-r--r--odoo/addons/test_access_rights/tests/test_feedback.py43
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')"""
+ )