diff --git a/addons/knowledge/models/knowledge_article.py b/addons/knowledge/models/knowledge_article.py index dfe5142d1c4..0f3b25c16b1 100644 --- a/addons/knowledge/models/knowledge_article.py +++ b/addons/knowledge/models/knowledge_article.py @@ -412,6 +412,9 @@ class Article(models.Model): @api.depends_context('uid') @api.depends('favorite_ids.user_id') def _compute_is_user_favorite(self): + if self.env.user._is_public(): + self.is_user_favorite = False + return for article in self: favorite = article.favorite_ids.filtered(lambda f: f.user_id == self.env.user) article.is_user_favorite = bool(favorite) diff --git a/addons/website_knowledge/tests/test_knowledge_security.py b/addons/website_knowledge/tests/test_knowledge_security.py index cbad5180c4a..58265b0ed8c 100644 --- a/addons/website_knowledge/tests/test_knowledge_security.py +++ b/addons/website_knowledge/tests/test_knowledge_security.py @@ -21,10 +21,11 @@ class TestWKnowledgeSecurity(KnowledgeCommonWData): article_shared.sudo().website_published = True article_shared.body # access body should not trigger acls + self.assertFalse(article_shared.is_user_favorite) # FAVOURITE with self.assertRaises(exceptions.AccessError, msg='ACLs: No favorite access to public'): - article_shared.is_user_favorite + self.env['knowledge.article.favorite'].search([]) @mute_logger('odoo.addons.base.models.ir_model', 'odoo.addons.base.models.ir_rule') @users('portal_test')