[FIX] website_forum: fix broken forum activation email due to the migration to the...
authorThibault Delavallée <tde@openerp.com>
Fri, 14 Nov 2014 09:21:31 +0000 (10:21 +0100)
committerThibault Delavallée <tde@openerp.com>
Fri, 14 Nov 2014 09:28:41 +0000 (10:28 +0100)
Next step: write tests. Hooray.

addons/website_forum/controllers/main.py
addons/website_forum/models/res_users.py

index b993342..66bde93 100644 (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:
index 5e01267..5cc39f5 100644 (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