From 2d66d9a63e85dada87b5c70b38bda9ec059aaaf4 Mon Sep 17 00:00:00 2001
From: Simon Lejeune <sle@openerp.com>
Date: Thu, 3 Mar 2016 17:14:15 +0100
Subject: [PATCH] [FIX] *: do not use groups when extending an asset bundle

Using groups when declaring an extension of an asset bundle leads to a
different generated asset bundle according to the user's group. This
is not something we want because a dynamic asset bundle's content
means that it could (and it does) trigger unwanted cache invalidation.

website_event, website_blog, website_forum and website_sale add
functions to `website.contentMenu`. These functions are bound to
server side qweb nodes protected by groups. We can always add the
functions; if a user tries to use the routes he should receive a
traceback because of lack of access rules

website_blog adds a `website_blog.editor` module, but is guarded by
the presence of a node in the DOM. We use the same logic to guard the
module added by website_sale with the `.js_sale` node.

website_gengo is working as expected.
---
 addons/website_blog/views/website_blog_templates.xml     | 2 +-
 addons/website_event/views/website_event.xml             | 2 +-
 addons/website_forum/views/website_forum.xml             | 2 +-
 addons/website_gengo/views/website_gengo.xml             | 2 +-
 addons/website_sale/static/src/js/website_sale.editor.js | 4 ++++
 addons/website_sale/views/templates.xml                  | 2 +-
 6 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index ed305fbf61d0..2594efc4d862 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -2,7 +2,7 @@
 <openerp>
 <data>
 
-<template id="assets_editor" inherit_id="website.assets_editor" name="Blog Editor" groups="base.group_website_publisher">
+<template id="assets_editor" inherit_id="website.assets_editor" name="Blog Editor">
     <xpath expr="." position="inside">
         <script type="text/javascript" src="/website_blog/static/src/js/website_blog.editor.js"></script>
         <script type="text/javascript" src="/website_blog/static/src/js/website.tour.blog.js"></script>
diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml
index 76732ef273a5..22813729e353 100644
--- a/addons/website_event/views/website_event.xml
+++ b/addons/website_event/views/website_event.xml
@@ -9,7 +9,7 @@
     </xpath>
 </template>
 
-<template id="assets_editor" inherit_id="website.assets_editor" name="Event Editor" groups="event.group_event_manager">
+<template id="assets_editor" inherit_id="website.assets_editor" name="Event Editor">
     <xpath expr="." position="inside">
         <script type="text/javascript" src="/website_event/static/src/js/website_event.editor.js"></script>
         <script type="text/javascript" src="/website_event/static/src/js/website.tour.event.js"></script>
diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml
index 7a1dc45f7207..5095d7870a5c 100644
--- a/addons/website_forum/views/website_forum.xml
+++ b/addons/website_forum/views/website_forum.xml
@@ -3,7 +3,7 @@
     <data>
 
 <!-- Editor custom -->
-<template id="assets_editor" inherit_id="website.assets_editor" name="Forum Editor Assets" groups="base.group_user">
+<template id="assets_editor" inherit_id="website.assets_editor" name="Forum Editor Assets">
     <xpath expr="." position="inside">
         <script type="text/javascript" src="/website_forum/static/src/js/website_tour_forum.js"/>
         <script type="text/javascript" src="/website_forum/static/src/js/website_forum.editor.js"/>
diff --git a/addons/website_gengo/views/website_gengo.xml b/addons/website_gengo/views/website_gengo.xml
index 0e3e7c1e6ebb..fd4ce7004cb3 100644
--- a/addons/website_gengo/views/website_gengo.xml
+++ b/addons/website_gengo/views/website_gengo.xml
@@ -2,7 +2,7 @@
 <openerp>
 <data>
 
-<template id="gengo_assets_editor" inherit_id="website.assets_editor" name="Editor Head" groups="base.group_website_publisher">
+<template id="gengo_assets_editor" inherit_id="website.assets_editor" name="Editor Head">
     <xpath expr='.' position="inside">
         <link rel="stylesheet" href="/website_gengo/static/src/css/website_gengo.css"></link>
         <script type="text/javascript" src="/website_gengo/static/src/js/website_gengo.js"></script>
diff --git a/addons/website_sale/static/src/js/website_sale.editor.js b/addons/website_sale/static/src/js/website_sale.editor.js
index 9c914a1f0820..81953834323e 100644
--- a/addons/website_sale/static/src/js/website_sale.editor.js
+++ b/addons/website_sale/static/src/js/website_sale.editor.js
@@ -25,6 +25,10 @@ contentMenu.TopBar.include({
     },
 });
 
+if(!$('.js_sale').length) {
+    return $.Deferred().reject("DOM doesn't contain '.js_sale'");
+}
+
 options.registry.website_sale = options.Class.extend({
     start: function () {
         var self = this;
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 337728999199..efe90cd9c5e2 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -17,7 +17,7 @@
   </xpath>
 </template>
 
-<template id="assets_editor" inherit_id="website.assets_editor" name="Shop Editor" groups="base.group_sale_manager">
+<template id="assets_editor" inherit_id="website.assets_editor" name="Shop Editor">
   <xpath expr="." position="inside">
       <script type="text/javascript" src="/website_sale/static/src/js/website_sale.editor.js"></script>
       <script type="text/javascript" src="/website_sale/static/src/js/website_sale_tour_shop.js"></script>
-- 
GitLab