diff --git a/addons/auth_signup/data/auth_signup_data.xml b/addons/auth_signup/data/auth_signup_data.xml index c8ded45916e..4d16b5e4951 100644 --- a/addons/auth_signup/data/auth_signup_data.xml +++ b/addons/auth_signup/data/auth_signup_data.xml @@ -9,8 +9,6 @@ - - _usertemplate diff --git a/addons/crm/tests/common.py b/addons/crm/tests/common.py index 7a04e27ddb9..49b664e8b60 100644 --- a/addons/crm/tests/common.py +++ b/addons/crm/tests/common.py @@ -18,7 +18,6 @@ class TestCrm(TestMail): cls.user_salesman_all = Users.create({ 'name': 'Riton La Chignole', 'login': 'riton', - 'alias_name': 'riton', 'email': 'riton.salesman_all@example.com', 'groups_id': [(6, 0, [user_group_employee.id, user_group_salesman_all.id])] }) diff --git a/addons/event/tests/common.py b/addons/event/tests/common.py index 6e2f0406357..dbd142a08be 100644 --- a/addons/event/tests/common.py +++ b/addons/event/tests/common.py @@ -27,7 +27,6 @@ class TestEventCommon(common.TransactionCase): self.user_eventuser = self.Users.with_context({'no_reset_password': True}).create({ 'name': 'Armande EventUser', 'login': 'Armande', - 'alias_name': 'armande', 'email': 'armande.eventuser@example.com', 'tz': 'Europe/Brussels', 'groups_id': [(6, 0, [self.group_employee_id, self.group_event_user_id])] @@ -35,7 +34,6 @@ class TestEventCommon(common.TransactionCase): self.user_eventmanager = self.Users.with_context({'no_reset_password': True}).create({ 'name': 'Bastien EventManager', 'login': 'bastien', - 'alias_name': 'bastien', 'email': 'bastien.eventmanager@example.com', 'tz': 'Europe/Brussels', 'groups_id': [(6, 0, [ diff --git a/addons/hr_holidays/tests/common.py b/addons/hr_holidays/tests/common.py index 2d9f518b340..8134675266a 100644 --- a/addons/hr_holidays/tests/common.py +++ b/addons/hr_holidays/tests/common.py @@ -18,21 +18,18 @@ class TestHrHolidaysBase(common.TransactionCase): self.user_hruser_id = Users.create({ 'name': 'Armande HrUser', 'login': 'Armande', - 'alias_name': 'armande', 'email': 'armande.hruser@example.com', 'groups_id': [(6, 0, [group_employee_id, self.ref('base.group_hr_user')])] }).id self.user_hrmanager_id = Users.create({ 'name': 'Bastien HrManager', 'login': 'bastien', - 'alias_name': 'bastien', 'email': 'bastien.hrmanager@example.com', 'groups_id': [(6, 0, [group_employee_id, self.ref('base.group_hr_manager')])] }).id self.user_employee_id = Users.create({ 'name': 'David Employee', 'login': 'david', - 'alias_name': 'david', 'email': 'david.employee@example.com', 'groups_id': [(6, 0, [group_employee_id])] }).id diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py index 0f8054d958a..a2f1c516560 100644 --- a/addons/mail/models/mail_message.py +++ b/addons/mail/models/mail_message.py @@ -26,11 +26,9 @@ class Message(models.Model): @api.model def _get_default_from(self): - if self.env.user.alias_name and self.env.user.alias_domain: - return formataddr((self.env.user.name, '%s@%s' % (self.env.user.alias_name, self.env.user.alias_domain))) - elif self.env.user.email: + if self.env.user.email: return formataddr((self.env.user.name, self.env.user.email)) - raise UserError(_("Unable to send email, please configure the sender's email address or alias.")) + raise UserError(_("Unable to send email, please configure the sender's email address.")) @api.model def _get_default_author(self): diff --git a/addons/mail/models/res_users.py b/addons/mail/models/res_users.py index 9e4294df3cd..1f95c02f078 100644 --- a/addons/mail/models/res_users.py +++ b/addons/mail/models/res_users.py @@ -14,11 +14,15 @@ class Users(models.Model): group, and the user. This is done by overriding the write method. """ _name = 'res.users' - _inherit = ['mail.alias.mixin', 'res.users'] + _inherit = ['res.users'] - alias_id = fields.Many2one('mail.alias', 'Alias', ondelete="restrict", required=True, + alias_id = fields.Many2one('mail.alias', 'Alias', ondelete="set null", required=False, help="Email address internally associated with this user. Incoming "\ "emails will appear in the user's notifications.", copy=False, auto_join=True) + alias_contact = fields.Selection([ + ('everyone', 'Everyone'), + ('partners', 'Authenticated Partners'), + ('followers', 'Followers only')], string='Alias Contact Security', related='alias_id.alias_contact') def __init__(self, pool, cr): """ Override of __init__ to add access rights on notification_email_send @@ -31,17 +35,9 @@ class Users(models.Model): type(self).SELF_WRITEABLE_FIELDS.extend(['notify_email']) # duplicate list to avoid modifying the original reference type(self).SELF_READABLE_FIELDS = list(self.SELF_READABLE_FIELDS) - type(self).SELF_READABLE_FIELDS.extend(['notify_email', 'alias_domain', 'alias_name']) + type(self).SELF_READABLE_FIELDS.extend(['notify_email']) return init_res - def get_alias_model_name(self, vals): - return self._name - - def get_alias_values(self): - values = super(Users, self).get_alias_values() - values['alias_force_thread_id'] = self.id - return values - @api.model def create(self, values): if not values.get('login', False): @@ -65,13 +61,6 @@ class Users(models.Model): self.env['mail.channel'].search([('group_ids', 'in', user_group_ids)])._subscribe_users() return write_res - @api.multi - def copy_data(self, default=None): - data = super(Users, self).copy_data(default)[0] - if data and data.get('alias_name'): - data['alias_name'] = data['login'] - return [data] - def _create_welcome_message(self): self.ensure_one() if not self.has_group('base.group_user'): diff --git a/addons/mail/tests/common.py b/addons/mail/tests/common.py index f40a6d6a83e..cf87cd200ac 100644 --- a/addons/mail/tests/common.py +++ b/addons/mail/tests/common.py @@ -56,7 +56,6 @@ class TestMail(common.SavepointCase): cls.user_employee = Users.create({ 'name': 'Ernest Employee', 'login': 'ernest', - 'alias_name': 'ernest', 'email': 'e.e@example.com', 'signature': '--\nErnest', 'notify_email': 'always', @@ -64,7 +63,6 @@ class TestMail(common.SavepointCase): cls.user_public = Users.create({ 'name': 'Bert Tartignole', 'login': 'bert', - 'alias_name': 'bert', 'email': 'b.t@example.com', 'signature': 'SignBert', 'notify_email': 'always', @@ -72,7 +70,6 @@ class TestMail(common.SavepointCase): cls.user_portal = Users.create({ 'name': 'Chell Gladys', 'login': 'chell', - 'alias_name': 'chell', 'email': 'chell@gladys.portal', 'signature': 'SignChell', 'notify_email': 'always', diff --git a/addons/mail/tests/test_mail_features.py b/addons/mail/tests/test_mail_features.py index 2a003a747ed..7dc8fb2f7f1 100644 --- a/addons/mail/tests/test_mail_features.py +++ b/addons/mail/tests/test_mail_features.py @@ -9,22 +9,8 @@ class TestMailFeatures(TestMail): # TDE TODO: tests on the redirection controller def test_alias_setup(self): - Users = self.env['res.users'].with_context({'no_reset_password': True}) - - user_valentin = Users.create({ - 'name': 'Valentin Cognito', 'email': 'valentin.cognito@gmail.com', - 'login': 'valentin.cognito', 'alias_name': 'valentin.cognito'}) - self.assertEqual(user_valentin.alias_name, user_valentin.login, "Login should be used as alias") - - user_pagan = Users.create({ - 'name': 'Pagan Le Marchant', 'email': 'plmarchant@gmail.com', - 'login': 'plmarchant@gmail.com', 'alias_name': 'plmarchant@gmail.com'}) - self.assertEqual(user_pagan.alias_name, 'plmarchant', "If login is an email, the alias should keep only the local part") - - user_barty = Users.create({ - 'name': 'Bartholomew Ironside', 'email': 'barty@gmail.com', - 'login': 'b4r+_#_R3wl$$', 'alias_name': 'b4r+_#_R3wl$$'}) - self.assertEqual(user_barty.alias_name, 'b4r+_-_r3wl-', 'Disallowed chars should be replaced by hyphens') + alias = self.env['mail.alias'].with_context(alias_model_name='mail.channel').create({'alias_name': 'b4r+_#_R3wl$$'}) + self.assertEqual(alias.alias_name, 'b4r+_-_r3wl-', 'Disallowed chars should be replaced by hyphens') @mute_logger('openerp.addons.mail.models.mail_mail') def test_needaction(self): @@ -138,8 +124,8 @@ class TestMessagePost(TestMail): # notification emails: followers + recipients - notify_email=none (partner_2) - author (user_employee) self.assertEqual(set(m['email_from'] for m in self._mails), - set(['%s <%s@%s>' % (self.user_employee.name, self.user_employee.alias_name, _domain)]), - 'message_post: notification email wrong email_from: should use alias of sender') + set(['%s <%s>' % (self.user_employee.name, self.user_employee.email)]), + 'message_post: notification email wrong email_from: should use sender email') self.assertEqual(set(m['email_to'][0] for m in self._mails), set(['%s <%s>' % (self.partner_1.name, self.partner_1.email), '%s <%s>' % (self.env.user.name, self.env.user.email)])) diff --git a/addons/mail/tests/test_mail_message.py b/addons/mail/tests/test_mail_message.py index 3df8b40a9b9..ab095f5f3ca 100644 --- a/addons/mail/tests/test_mail_message.py +++ b/addons/mail/tests/test_mail_message.py @@ -49,8 +49,8 @@ class TestMailMessage(TestMail): msg = self.env['mail.message'].sudo(self.user_employee).create({}) self.assertIn('-private', msg.message_id, 'mail_message: message_id for a void message should be a "private" one') - self.assertEqual(msg.reply_to, '%s <%s@%s>' % (self.user_employee.name, self.user_employee.alias_name, alias_domain)) - self.assertEqual(msg.email_from, '%s <%s@%s>' % (self.user_employee.name, self.user_employee.alias_name, alias_domain)) + self.assertEqual(msg.reply_to, '%s <%s>' % (self.user_employee.name, self.user_employee.email)) + self.assertEqual(msg.email_from, '%s <%s>' % (self.user_employee.name, self.user_employee.email)) def test_mail_message_values_alias_catchall(self): alias_domain = 'example.com' @@ -61,7 +61,7 @@ class TestMailMessage(TestMail): msg = self.env['mail.message'].sudo(self.user_employee).create({}) self.assertIn('-private', msg.message_id, 'mail_message: message_id for a void message should be a "private" one') self.assertEqual(msg.reply_to, '%s <%s@%s>' % (self.env.user.company_id.name, alias_catchall, alias_domain)) - self.assertEqual(msg.email_from, '%s <%s@%s>' % (self.user_employee.name, self.user_employee.alias_name, alias_domain)) + self.assertEqual(msg.email_from, '%s <%s>' % (self.user_employee.name, self.user_employee.email)) def test_mail_message_values_document_no_alias(self): self.env['ir.config_parameter'].search([('key', '=', 'mail.catchall.domain')]).unlink() @@ -85,7 +85,7 @@ class TestMailMessage(TestMail): }) self.assertIn('-openerp-%d-mail.channel' % self.group_pigs.id, msg.message_id, 'mail_message: message_id for a void message should be a "private" one') self.assertEqual(msg.reply_to, '%s %s <%s@%s>' % (self.env.user.company_id.name, self.group_pigs.name, self.group_pigs.alias_name, alias_domain)) - self.assertEqual(msg.email_from, '%s <%s@%s>' % (self.user_employee.name, self.user_employee.alias_name, alias_domain)) + self.assertEqual(msg.email_from, '%s <%s>' % (self.user_employee.name, self.user_employee.email)) def test_mail_message_values_document_alias_catchall(self): alias_domain = 'example.com' @@ -99,7 +99,7 @@ class TestMailMessage(TestMail): }) self.assertIn('-openerp-%d-mail.channel' % self.group_pigs.id, msg.message_id, 'mail_message: message_id for a void message should be a "private" one') self.assertEqual(msg.reply_to, '%s %s <%s@%s>' % (self.env.user.company_id.name, self.group_pigs.name, self.group_pigs.alias_name, alias_domain)) - self.assertEqual(msg.email_from, '%s <%s@%s>' % (self.user_employee.name, self.user_employee.alias_name, alias_domain)) + self.assertEqual(msg.email_from, '%s <%s>' % (self.user_employee.name, self.user_employee.email)) def test_mail_message_values_no_auto_thread(self): msg = self.env['mail.message'].sudo(self.user_employee).create({ diff --git a/addons/mail/views/res_users_views.xml b/addons/mail/views/res_users_views.xml index 7cd4b25689b..c8b18ba4f07 100644 --- a/addons/mail/views/res_users_views.xml +++ b/addons/mail/views/res_users_views.xml @@ -27,17 +27,8 @@ -