[MERGE] forward port of branch saas-5 up to e4cb520
[odoo/odoo.git] / addons / website_membership / controllers / main.py
index 9947eab..c88fb43 100644 (file)
@@ -48,7 +48,7 @@ class WebsiteMembership(http.Controller):
                                       ('partner.website_description', 'ilike', post_name)]
 
         # group by country, based on all customers (base domain)
-        membership_line_ids = membership_line_obj.search(cr, uid, base_line_domain, context=context)
+        membership_line_ids = membership_line_obj.search(cr, SUPERUSER_ID, base_line_domain, context=context)
         countries = partner_obj.read_group(
             cr, uid, [('member_lines', 'in', membership_line_ids), ("website_published", "=", True)], ["id", "country_id"],
             groupby="country_id", orderby="country_id", context=request.context)
@@ -70,8 +70,14 @@ class WebsiteMembership(http.Controller):
             'country_id': (0, _("All Countries"))
         })
 
+        # format domain for group_by and memberships
+        membership_ids = product_obj.search(cr, uid, [('membership', '=', True)], order="website_sequence", context=context)
+        memberships = product_obj.browse(cr, uid, membership_ids, context=context)
+        # make sure we don't access to lines with unpublished membershipts
+        line_domain.append(('membership_id', 'in', membership_ids))
+
         # displayed membership lines
-        membership_line_ids = membership_line_obj.search(cr, uid, line_domain, context=context)
+        membership_line_ids = membership_line_obj.search(cr, SUPERUSER_ID, line_domain, context=context)
         membership_lines = membership_line_obj.browse(cr, uid, membership_line_ids, context=context)
         membership_lines = sorted(membership_lines, key=lambda x: x.membership_id.website_sequence)
         partner_ids = [m.partner.id for m in membership_lines]
@@ -79,10 +85,6 @@ class WebsiteMembership(http.Controller):
 
         partners = dict((p.id, p) for p in partner_obj.browse(request.cr, SUPERUSER_ID, partner_ids, request.context))
 
-        # format domain for group_by and memberships
-        membership_ids = product_obj.search(cr, uid, [('membership', '=', True)], order="website_sequence", context=context)
-        memberships = product_obj.browse(cr, uid, membership_ids, context=context)
-
         # request pager for lines
         pager = request.website.pager(url="/members", total=len(membership_line_ids), page=page, step=self._references_per_page, scope=7, url_args=post)