From 41897f0dbabebd8b6efb616423735c939f86ae94 Mon Sep 17 00:00:00 2001 From: Joren Van Onder Date: Wed, 18 Oct 2017 16:19:45 -0700 Subject: [PATCH] [FIX] website: respect website.page date_publish Before this public users could see pages before their date_publish. request.website.is_publisher is a function that always exists. So the if body will never be executed. Additionally, is_visible is a non-stored computed field that can't be searched. So instead grab all records that match and filter the ones that are visible. This commit closes #20296 --- addons/website/models/ir_http.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index 433fc5e297a..c737f064e1a 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -105,11 +105,12 @@ class Http(models.AbstractModel): req_page = request.httprequest.path domain = [('url', '=', req_page), '|', ('website_ids', 'in', request.website.id), ('website_ids', '=', False)] + pages = request.env['website.page'].search(domain) - if not request.website.is_publisher: - domain += [('is_visible', '=', True)] + if not request.website.is_publisher(): + pages = pages.filtered('is_visible') - mypage = request.env['website.page'].search(domain, limit=1) + mypage = pages[0] if pages else False _, ext = os.path.splitext(req_page) if mypage: return request.render(mypage.view_id.id, {