diff --git a/security/ir_rule.xml b/security/ir_rule.xml
index 44a08d9..347a32a 100644
--- a/security/ir_rule.xml
+++ b/security/ir_rule.xml
@@ -15,7 +15,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- [('id', 'in', user.allowed_warehouse_ids.ids)] if user.allowed_warehouse_ids else [(1, '=', 1)]
+ [('id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_warehouse_ids or user.sudo().allowed_location_ids) else [(1, '=', 1)]
)
@@ -28,7 +28,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- ['|', ('id', 'in', user.allowed_picking_type_ids.ids), ('warehouse_id', 'in', (user.allowed_warehouse_ids + user.allowed_location_ids.warehouse_id).ids)] if (user.allowed_picking_type_ids or user.allowed_warehouse_ids or user.allowed_location_ids) else [(1, '=', 1)]
+ ['|', ('id', 'in', user.sudo().allowed_picking_type_ids.ids), ('warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_picking_type_ids or user.sudo().allowed_warehouse_ids or user.sudo().allowed_location_ids) else [(1, '=', 1)]
)
@@ -41,7 +41,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- ['|', '|', '|', ('id', 'in', user.allowed_location_ids.ids), ('id', 'child_of', user.allowed_location_ids.ids), ('id', 'parent_of', user.allowed_location_ids.ids), ('warehouse_id', 'in', (user.allowed_warehouse_ids + user.allowed_location_ids.warehouse_id).ids)] if (user.allowed_location_ids or user.allowed_warehouse_ids) else [(1, '=', 1)]
+ ['|', '|', '|', ('id', 'in', user.sudo().allowed_location_ids.ids), ('id', 'child_of', user.sudo().allowed_location_ids.ids), ('id', 'parent_of', user.sudo().allowed_location_ids.ids), ('warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_location_ids or user.sudo().allowed_warehouse_ids) else [(1, '=', 1)]
)
@@ -54,7 +54,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- ['|', ('location_id', 'in', user.allowed_location_ids.ids), ('location_id', 'child_of', user.allowed_location_ids.ids)] if user.allowed_location_ids else [(1, '=', 1)]
+ ['|', '|', ('location_id', 'in', user.sudo().allowed_location_ids.ids), ('location_id', 'child_of', user.sudo().allowed_location_ids.ids), ('location_id.warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_location_ids or user.sudo().allowed_warehouse_ids) else [(1, '=', 1)]
)
@@ -67,8 +67,8 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- ['|', '|', ('location_id', 'in', user.allowed_location_ids.ids), ('location_id', 'child_of', user.allowed_location_ids.ids),
- '|', ('location_dest_id', 'in', user.allowed_location_ids.ids), ('location_dest_id', 'child_of', user.allowed_location_ids.ids)] if user.allowed_location_ids else [(1, '=', 1)]
+ ['|', '|', '|', '|', ('location_id', 'in', user.sudo().allowed_location_ids.ids), ('location_id', 'child_of', user.sudo().allowed_location_ids.ids), ('location_id.warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids),
+ '|', '|', ('location_dest_id', 'in', user.sudo().allowed_location_ids.ids), ('location_dest_id', 'child_of', user.sudo().allowed_location_ids.ids), ('location_dest_id.warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_location_ids or user.sudo().allowed_warehouse_ids) else [(1, '=', 1)]
)
@@ -81,8 +81,8 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- ['|', '|', ('location_id', 'in', user.allowed_location_ids.ids), ('location_id', 'child_of', user.allowed_location_ids.ids),
- '|', ('location_dest_id', 'in', user.allowed_location_ids.ids), ('location_dest_id', 'child_of', user.allowed_location_ids.ids)] if user.allowed_location_ids else [(1, '=', 1)]
+ ['|', '|', '|', '|', ('location_id', 'in', user.sudo().allowed_location_ids.ids), ('location_id', 'child_of', user.sudo().allowed_location_ids.ids), ('location_id.warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids),
+ '|', '|', ('location_dest_id', 'in', user.sudo().allowed_location_ids.ids), ('location_dest_id', 'child_of', user.sudo().allowed_location_ids.ids), ('location_dest_id.warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_location_ids or user.sudo().allowed_warehouse_ids) else [(1, '=', 1)]
)
@@ -95,7 +95,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- [('id', 'in', user.allowed_workcenter_ids.ids)] if user.allowed_workcenter_ids else [(1, '=', 1)]
+ [('id', 'in', user.sudo().allowed_workcenter_ids.ids)] if user.sudo().allowed_workcenter_ids else [(1, '=', 1)]
)
@@ -108,7 +108,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- [('id', 'in', user.allowed_approval_category_ids.ids)] if user.allowed_approval_category_ids else [(1, '=', 1)]
+ [('id', 'in', user.sudo().allowed_approval_category_ids.ids)] if user.sudo().allowed_approval_category_ids else [(1, '=', 1)]
)
@@ -121,7 +121,7 @@
(
[(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
- [('warehouse_id', 'in', (user.allowed_warehouse_ids + user.allowed_location_ids.warehouse_id).ids)] if (user.allowed_warehouse_ids or user.allowed_location_ids) else [(1, '=', 1)]
+ [('warehouse_id', 'in', user.sudo().allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.sudo().allowed_warehouse_ids or user.sudo().allowed_location_ids) else [(1, '=', 1)]
)
diff --git a/security/ir_rule.xml.bak b/security/ir_rule.xml.bak
new file mode 100644
index 0000000..c54478b
--- /dev/null
+++ b/security/ir_rule.xml.bak
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+ Stock Warehouse Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ [('id', 'in', user.allowed_warehouse_ids.ids)] if user.allowed_warehouse_ids else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Stock Picking Type Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ ['|', ('id', 'in', user.allowed_picking_type_ids.ids), ('warehouse_id', 'in', user.allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.allowed_picking_type_ids or user.allowed_warehouse_ids or user.allowed_location_ids) else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Stock Location Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ ['|', '|', '|', ('id', 'in', user.allowed_location_ids.ids), ('id', 'child_of', user.allowed_location_ids.ids), ('id', 'parent_of', user.allowed_location_ids.ids), ('warehouse_id', 'in', user.allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.allowed_location_ids or user.allowed_warehouse_ids) else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Stock Quant Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ ['|', ('location_id', 'in', user.allowed_location_ids.ids), ('location_id', 'child_of', user.allowed_location_ids.ids)] if user.allowed_location_ids else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Stock Move Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ ['|', '|', ('location_id', 'in', user.allowed_location_ids.ids), ('location_id', 'child_of', user.allowed_location_ids.ids),
+ '|', ('location_dest_id', 'in', user.allowed_location_ids.ids), ('location_dest_id', 'child_of', user.allowed_location_ids.ids)] if user.allowed_location_ids else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Stock Move Line Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ ['|', '|', ('location_id', 'in', user.allowed_location_ids.ids), ('location_id', 'child_of', user.allowed_location_ids.ids),
+ '|', ('location_dest_id', 'in', user.allowed_location_ids.ids), ('location_dest_id', 'child_of', user.allowed_location_ids.ids)] if user.allowed_location_ids else [(1, '=', 1)]
+ )
+
+
+
+
+
+ MRP Workcenter Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ [('id', 'in', user.allowed_workcenter_ids.ids)] if user.allowed_workcenter_ids else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Approval Category Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ [('id', 'in', user.allowed_approval_category_ids.ids)] if user.allowed_approval_category_ids else [(1, '=', 1)]
+ )
+
+
+
+
+
+ Report Stock Quantity Allowed Access
+
+
+
+ (
+ [(1, '=', 1)] if user.env.context.get('bypass_user_restriction') or user.has_group('base.group_system') else
+ [('warehouse_id', 'in', user.allowed_warehouse_ids.ids + user.sudo().allowed_location_ids.warehouse_id.ids)] if (user.allowed_warehouse_ids or user.allowed_location_ids) else [(1, '=', 1)]
+ )
+
+
+
+
+