[FIX] mail: allow duplicate records with alias for non-admin
ALIAS_WRITEABLE_FIELDS is used to write alias fields with sudo Steps to reproduce: 1. Create a user 1.1. Give rights Services -> Project-> Administartor 1.2. Not given rights Administration-> administartor 2. Project app -> open any project -> Action -> duplicate -> it give validation error. --- opw-2506566 closes odoo/odoo#70414 X-original-commit: 7ae1b4622c6743e28deca12476d6e70375c9417e Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com> Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>
This commit is contained in:
@@ -16,7 +16,7 @@ class AliasMixin(models.AbstractModel):
|
||||
_name = 'mail.alias.mixin'
|
||||
_inherits = {'mail.alias': 'alias_id'}
|
||||
_description = 'Email Aliases Mixin'
|
||||
ALIAS_WRITEABLE_FIELDS = ['alias_name', 'alias_contact', 'alias_defaults']
|
||||
ALIAS_WRITEABLE_FIELDS = ['alias_name', 'alias_contact', 'alias_defaults', 'alias_bounced_content']
|
||||
|
||||
alias_id = fields.Many2one('mail.alias', string='Alias', ondelete="restrict", required=True)
|
||||
|
||||
|
||||
@@ -177,6 +177,23 @@ class TestMailAlias(TestMailCommon):
|
||||
with self.assertRaises(exceptions.UserError), self.cr.savepoint():
|
||||
self.env['ir.config_parameter'].sudo().set_param('mail.bounce.alias', new_mail_alias.alias_name)
|
||||
|
||||
def test_alias_mixin_copy(self):
|
||||
user_demo = self.env.ref('base.user_demo')
|
||||
self.assertFalse(user_demo.has_group('base.group_system'), 'Demo user is not supposed to have Administrator access')
|
||||
self._test_alias_mixin_copy(user_demo, 'alias.test1', False)
|
||||
self._test_alias_mixin_copy(user_demo, 'alias.test2', '<p>What Is Dead May Never Die</p>')
|
||||
|
||||
def _test_alias_mixin_copy(self, user, alias_name, alias_bounced_content):
|
||||
record = self.env['mail.test.container'].with_user(user).with_context(lang='en_US').create({
|
||||
'name': 'Test Record',
|
||||
'alias_name': alias_name,
|
||||
'alias_contact': 'followers',
|
||||
'alias_bounced_content': alias_bounced_content,
|
||||
})
|
||||
self.assertEqual(record.alias_bounced_content, alias_bounced_content)
|
||||
record_copy = record.copy()
|
||||
self.assertEqual(record_copy.alias_bounced_content, alias_bounced_content)
|
||||
|
||||
|
||||
@tagged('mail_gateway')
|
||||
class TestMailgateway(TestMailCommon):
|
||||
|
||||
Reference in New Issue
Block a user