diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js
index fcb957cafda..f8d1a66bc80 100644
--- a/addons/website/static/src/js/website.editor.js
+++ b/addons/website/static/src/js/website.editor.js
@@ -3,6 +3,7 @@
var website = openerp.website;
var _t = openerp._t;
+ website.no_editor = !!$(document.documentElement).data('editable-no-editor');
website.add_template_file('/website/static/src/xml/website.editor.xml');
website.dom_ready.done(function () {
@@ -496,6 +497,17 @@
this.$('#website-top-edit').hide();
this.$('#website-top-view').show();
+ if (website.no_editor) {
+ var help_text = $(document.documentElement).data('editable-no-editor');
+ this.$('button[data-action=edit]')
+ .prop('disabled', website.no_editor)
+ .parent()
+ // help must be set on form above button because it does
+ // not appear on disabled button
+ .attr('title', help_text);
+ }
+
+
$('.dropdown-toggle').dropdown();
this.customize_setup();
diff --git a/addons/website/static/src/xml/website.xml b/addons/website/static/src/xml/website.xml
index 4d9c9fcd73d..684a46a9f43 100644
--- a/addons/website/static/src/xml/website.xml
+++ b/addons/website/static/src/xml/website.xml
@@ -14,7 +14,8 @@
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index e5c1bfc0f86..50d4fa8b906 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -59,6 +59,7 @@
diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py
index be4bfe190d9..5fb56a2b4a3 100644
--- a/openerp/addons/base/ir/ir_qweb.py
+++ b/openerp/addons/base/ir/ir_qweb.py
@@ -256,9 +256,15 @@ class QWeb(orm.AbstractModel):
cr = qwebcontext.get('request') and qwebcontext['request'].cr or None
uid = qwebcontext.get('request') and qwebcontext['request'].uid or None
can_see = self.user_has_groups(cr, uid, groups=attribute_value) if cr and uid else False
- if not can_see:
- return ''
- continue
+ if can_see:
+ continue
+ if qwebcontext.get('editable') and not qwebcontext.get('editable_no_editor'):
+ errmsg = _("Editor disabled because some content can not be seen by a user who does not belong to the groups %s")
+ raise openerp.http.Retry(
+ _("User does not belong to groups %s") % attribute_value, {
+ 'editable_no_editor': errmsg % attribute_value
+ })
+ return ''
if isinstance(attribute_value, unicode):
attribute_value = attribute_value.encode("utf8")
@@ -302,7 +308,7 @@ class QWeb(orm.AbstractModel):
for current_node in element.childNodes:
try:
g_inner.append(self.render_node(current_node, qwebcontext))
- except QWebException:
+ except (QWebException, openerp.http.Retry):
raise
except Exception:
template = qwebcontext.get('__template__')