[FIX] website_forum: fix broken forum activation email due to the migration to the new API.

Next step: write tests. Hooray.
This commit is contained in:
Thibault Delavallée
2014-11-14 10:28:41 +01:00
parent 3bfc9f7dab
commit 5d74994eb2
2 changed files with 8 additions and 5 deletions
+3 -2
View File
@@ -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:
+5 -3
View File
@@ -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