From 32dd65d059a2d2e327a59bc9322ff6d1f13f9587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 6 Jul 2022 14:32:38 +0000 Subject: [PATCH] [FW][FIX] knowledge: archive children with current user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Surprisingly ``_filter_access_rules_python`` returns a sudo-ed recordset. We do not want to call super in a write as sudo, even if the recordset has been filtered based on current user's ACLs. In this commit we reset the recordset environment to the current user's one. Task-2859616 X-original-commit: odoo/odoo@a41d4b9ce1166f468da1bb1c8c5694bfeff786c2 Part-of: odoo/odoo#95471 Co-authored-by: Aurélien Warnon --- addons/knowledge/models/knowledge_article.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/knowledge/models/knowledge_article.py b/addons/knowledge/models/knowledge_article.py index e596bf80448..df587a8285d 100644 --- a/addons/knowledge/models/knowledge_article.py +++ b/addons/knowledge/models/knowledge_article.py @@ -661,7 +661,9 @@ class Article(models.Model): * unreachable descendants (none, read) are set as free articles without root; """ - writable_descendants = self._detach_unwritable_descendants() + # _detach_unwritable_descendants calls _filter_access_rules_python which returns + # a sudo-ed recordset + writable_descendants = self._detach_unwritable_descendants().with_env(self.env) return super(Article, self + writable_descendants).action_archive() # ------------------------------------------------------------