diff --git a/addons/knowledge/models/knowledge_article.py b/addons/knowledge/models/knowledge_article.py index 0f3b25c16b1..dcc410c4755 100644 --- a/addons/knowledge/models/knowledge_article.py +++ b/addons/knowledge/models/knowledge_article.py @@ -1241,7 +1241,7 @@ class Article(models.Model): })) article_values['article_member_ids'] = member_command - return writable_self.write(article_values) + return writable_self.with_context(knowledge_member_skip_writable_check=True).write(article_values) # ------------------------------------------------------------ # PERMISSIONS BATCH COMPUTATION diff --git a/addons/knowledge/models/knowledge_article_member.py b/addons/knowledge/models/knowledge_article_member.py index 2b9bee70834..a2155355b58 100644 --- a/addons/knowledge/models/knowledge_article_member.py +++ b/addons/knowledge/models/knowledge_article_member.py @@ -49,6 +49,9 @@ class ArticleMember(models.Model): in self (the ones that will be deleted) to check if one of the remaining members has write access. """ + if self.env.context.get('knowledge_member_skip_writable_check'): + return + articles_to_check = self.article_id.filtered(lambda a: a.inherited_permission != 'write') if not articles_to_check: return