From 895dc077ec46afddf50b8ff8a065a234166bd9fa Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Tue, 6 Jan 2026 09:29:40 +0700 Subject: [PATCH] feat: add system group user exemption to access restriction checks in `_search` methods. --- models/restricted_models.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/models/restricted_models.py b/models/restricted_models.py index 906af83..3307392 100644 --- a/models/restricted_models.py +++ b/models/restricted_models.py @@ -6,7 +6,7 @@ class StockWarehouse(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): - if not self.env.su: + if not self.env.su and not self.env.user.has_group('base.group_system'): domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_warehouse_ids.ids)]]) return super()._search(domain, offset=offset, limit=limit, order=order) @@ -15,7 +15,7 @@ class StockPickingType(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): - if not self.env.su: + if not self.env.su and not self.env.user.has_group('base.group_system'): domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_picking_type_ids.ids)]]) return super()._search(domain, offset=offset, limit=limit, order=order) @@ -24,7 +24,7 @@ class StockLocation(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): - if not self.env.su: + if not self.env.su and not self.env.user.has_group('base.group_system'): domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_location_ids.ids)]]) return super()._search(domain, offset=offset, limit=limit, order=order) @@ -33,7 +33,7 @@ class MrpWorkcenter(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): - if not self.env.su: + if not self.env.su and not self.env.user.has_group('base.group_system'): domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_workcenter_ids.ids)]]) return super()._search(domain, offset=offset, limit=limit, order=order) @@ -42,6 +42,6 @@ class ApprovalCategory(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): - if not self.env.su: + if not self.env.su and not self.env.user.has_group('base.group_system'): domain = expression.AND([domain or [], [('id', 'in', self.env.user.allowed_approval_category_ids.ids)]]) return super()._search(domain, offset=offset, limit=limit, order=order)