From 5779e29f353d045b2c4c4b7317fe3ed2aed9d46a Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Thu, 1 Sep 2022 08:35:28 +0000 Subject: [PATCH] [FIX] web_tour: add sudo for record creation Method `consume` is called at the end of a tour. Tour can be started via debug menu by any admin with "Access rights", however the method requires `Settings` access level. Fix it by adding `sudo()`. This issue could be reviewed in master. STEPS: * change Administration access level to "Access rights" * start tour `sale_quote_tour` * follow the tour steps opw-2965772 closes odoo/odoo#103801 X-original-commit: c96111bf1cc7611b3b3e0b9f210d50cff527cc91 Signed-off-by: Ivan Elizaryev (iel) --- addons/web_tour/models/tour.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/web_tour/models/tour.py b/addons/web_tour/models/tour.py index ccf6968fd63..339506d3874 100644 --- a/addons/web_tour/models/tour.py +++ b/addons/web_tour/models/tour.py @@ -17,8 +17,12 @@ class Tour(models.Model): def consume(self, tour_names): """ Sets given tours as consumed, meaning that these tours won't be active anymore for that user """ + if not self.env.user.has_group('base.group_user'): + # Only internal users can use this method. + # TODO master: update ir.model.access records instead of using sudo() + return for name in tour_names: - self.create({'name': name, 'user_id': self.env.uid}) + self.sudo().create({'name': name, 'user_id': self.env.uid}) @api.model def get_consumed_tours(self):