summaryrefslogtreecommitdiff
path: root/addons/website_profile/controllers
diff options
context:
space:
mode:
authorDavid Beguin <dbe@odoo.com>2019-02-20 16:54:36 +0000
committerDavid Beguin <dbe@odoo.com>2019-03-15 14:58:28 +0000
commitfb40c6bf6018f7f208201e1d4a4d413fd2ce3080 (patch)
treed6df1ec5f2e7aca08311a51fad7f2ab3162a6806 /addons/website_profile/controllers
parentbbedcdb19054527940fb040a0d4f22115d5be265 (diff)
[IMP] website(_profile,_forum,_slides): move validation email to profile and use in forum and elearning
Email validation was necessary on the forum to be able to begin to use the forum (ask or answer questions, vote, etc..) As the new elearning also uses karma since 705376a982d64fb41800f148a167ef0fc28ce4c6, the email validation is now also necessary in the eLearning platform. This is why this commit is moving the email validation process to website_profile and extend website_slides (eLearning) and website_forum to use this feature. In function of where the user asked to send him the validation email, the user is redirected on the forum or on the elearning when he clicks on 'Validate my account' in the received 'email validation' email. Task ID : 1943788 PR #31321
Diffstat (limited to 'addons/website_profile/controllers')
-rw-r--r--addons/website_profile/controllers/main.py28
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