diff options
Diffstat (limited to 'addons/website_profile/controllers/main.py')
| -rw-r--r-- | addons/website_profile/controllers/main.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/addons/website_profile/controllers/main.py b/addons/website_profile/controllers/main.py index 4d0e58efbe8..b29ba2077fb 100644 --- a/addons/website_profile/controllers/main.py +++ b/addons/website_profile/controllers/main.py @@ -57,6 +57,8 @@ class WebsiteProfile(http.Controller): values = { 'user': request.env.user, 'is_public_user': request.website.is_public_user(), + 'validation_email_sent': request.session.get('validation_email_sent', False), + 'validation_email_done': request.session.get('validation_email_done', False), } values.update(kwargs) return values @@ -111,8 +113,9 @@ class WebsiteProfile(http.Controller): user = self._check_user_profile_access(user_id) if not user: return request.render("website_profile.private_profile") + values = self._prepare_user_values(**post) params = self._prepare_user_profile_parameters(**post) - values = self._prepare_user_profile_values(user, **params) + values.update(self._prepare_user_profile_values(user, **params)) return request.render("website_profile.user_profile_main", values) # Edit Profile @@ -234,3 +237,26 @@ class WebsiteProfile(http.Controller): 'pager': pager } return request.render("website_profile.users_page_main", values) + + # User and validation + # -------------------------------------------------- + + @http.route('/profile/send_validation_email', type='json', auth='user', website=True) + def send_validation_email(self, **kwargs): + if request.env.uid != request.website.user_id.id: + request.env.user._send_profile_validation_email(**kwargs) + request.session['validation_email_sent'] = True + return True + + @http.route('/profile/validate_email', type='http', auth='public', website=True, sitemap=False) + def validate_email(self, token, user_id, email, **kwargs): + done = request.env['res.users'].sudo().browse(int(user_id))._process_profile_validation_token(token, email) + if done: + request.session['validation_email_done'] = True + url = kwargs.get('redirect_url', '/') + return request.redirect(url) + + @http.route('/profile/validate_email/close', type='json', auth='public', website=True) + def validate_email_done(self, **kwargs): + request.session['validation_email_done'] = False + return True |
