diff --git a/addons/website_slides/controllers/main.py b/addons/website_slides/controllers/main.py
index 2385bf60d21..fb972988dc6 100644
--- a/addons/website_slides/controllers/main.py
+++ b/addons/website_slides/controllers/main.py
@@ -460,7 +460,7 @@ class WebsiteSlides(WebsiteProfile):
@http.route(['/slides/channel/join'], type='json', auth='public', website=True)
def slide_channel_join(self, channel_id):
if request.website.is_public_user():
- return {'error': 'public_user'}
+ return {'error': 'public_user', 'error_signup_allowed': request.env['res.users'].sudo()._get_signup_invitation_scope() == 'b2c'}
success = request.env['slide.channel'].browse(channel_id).action_add_member()
if not success:
return {'error': 'join_done'}
@@ -586,7 +586,7 @@ class WebsiteSlides(WebsiteProfile):
@http.route('/slides/slide/like', type='json', auth="public", website=True)
def slide_like(self, slide_id, upvote):
if request.website.is_public_user():
- return {'error': 'public_user'}
+ return {'error': 'public_user', 'error_signup_allowed': request.env['res.users'].sudo()._get_signup_invitation_scope() == 'b2c'}
slide_partners = request.env['slide.slide.partner'].sudo().search([
('slide_id', '=', slide_id),
('partner_id', '=', request.env.user.partner_id.id)
diff --git a/addons/website_slides/static/src/js/slides_course_join.js b/addons/website_slides/static/src/js/slides_course_join.js
index 492229e6769..278d9c4672f 100644
--- a/addons/website_slides/static/src/js/slides_course_join.js
+++ b/addons/website_slides/static/src/js/slides_course_join.js
@@ -54,7 +54,12 @@ var CourseJoinWidget = Widget.extend({
location.reload();
} else {
if (data.error === 'public_user') {
- self._popoverAlert(self.$el, _.str.sprintf(_t('Please login to join this course.'), (document.URL)));
+ var message = _t('Please login to join this course');
+ var signupAllowed = data.error_signup_allowed || false;
+ if (signupAllowed) {
+ message = _t('Please create an account to join this course');
+ }
+ self._popoverAlert(self.$el, _.str.sprintf(message, (document.URL)));
} else if (data.error === 'join_done') {
self._popoverAlert(self.$el, _t('You have already joined this channel'));
} else {
diff --git a/addons/website_slides/static/src/js/slides_slide_like.js b/addons/website_slides/static/src/js/slides_slide_like.js
index 22d96d87353..9123df740d3 100644
--- a/addons/website_slides/static/src/js/slides_slide_like.js
+++ b/addons/website_slides/static/src/js/slides_slide_like.js
@@ -56,7 +56,12 @@ var SlideLikeWidget = Widget.extend({
self.$el.find('span.o_wslides_js_slide_like_down span').text(data.dislikes);
} else {
if (data.error === 'public_user') {
- self._popoverAlert(self.$el, _.str.sprintf(_t('Please login to vote this lesson'), (document.URL)));
+ var message = _t('Please login to vote this lesson');
+ var signupAllowed = data.error_signup_allowed || false;
+ if (signupAllowed) {
+ message = _t('Please create an account to vote this lesson');
+ }
+ self._popoverAlert(self.$el, _.str.sprintf(message, (document.URL)));
} else if (data.error === 'vote_done') {
self._popoverAlert(self.$el, _t('You have already voted for this lesson'));
} else if (data.error === 'slide_access') {