From 5d74994eb21ab977286daff1ed1de2f48523d6df Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 14 Nov 2014 10:21:31 +0100 Subject: [PATCH] [FIX] website_forum: fix broken forum activation email due to the migration to the new API. Next step: write tests. Hooray. --- addons/website_forum/controllers/main.py | 5 +++-- addons/website_forum/models/res_users.py | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index b993342..66bde93 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -51,7 +51,8 @@ class WebsiteForum(http.Controller): @http.route('/forum/send_validation_email', type='json', auth='user', website=True) def send_validation_email(self, forum_id=None, **kwargs): - request.env['res.users'].send_forum_validation_email(request.uid, forum_id=forum_id) + if request.env.uid != request.website.user_id.id: + request.env.user.send_forum_validation_email(forum_id=forum_id) request.session['validation_email_sent'] = True return True @@ -62,7 +63,7 @@ class WebsiteForum(http.Controller): forum_id = int(forum_id) except ValueError: forum_id = None - done = request.env['res.users'].process_forum_validation_token(token, int(id), email, forum_id=forum_id) + done = request.env['res.users'].sudo().browse(int(id)).process_forum_validation_token(token, email, forum_id=forum_id)[0] if done: request.session['validation_email_done'] = True if forum_id: diff --git a/addons/website_forum/models/res_users.py b/addons/website_forum/models/res_users.py index 5e01267..5cc39f5 100644 --- a/addons/website_forum/models/res_users.py +++ b/addons/website_forum/models/res_users.py @@ -57,9 +57,11 @@ class Users(models.Model): @api.one def send_forum_validation_email(self, forum_id=None): + if not self.email: + return False token = self._generate_forum_token(self.id, self.email) - activation_template_id = self.env['ir.model.data'].xmlid_to_res_id('website_forum.validation_email') - if activation_template_id: + activation_template = self.env.ref('website_forum.validation_email') + if activation_template: params = { 'token': token, 'id': self.id, @@ -68,7 +70,7 @@ class Users(models.Model): params['forum_id'] = forum_id base_url = self.env['ir.config_parameter'].get_param('web.base.url') token_url = base_url + '/forum/validate_email?%s' % urlencode(params) - self.env['email.template'].sudo().with_context(token_url=token_url).send_mail(activation_template_id, self.id, force_send=True) + activation_template.sudo().with_context(token_url=token_url).send_mail(self.id, force_send=True) return True @api.one -- 1.7.10.4