Odoo Help


How to Restrict Warehouse for User ?

on 1/15/14, 8:36 AM 2,042 views

Hello Forum, Please let me know, how to restrict the User by warehouse in V7 ?

Suppose there are "n" number of warehouses, then How to assign a Warehouse for user, to restrict the access ? So that, He will be accessible to only one Warehouse, its Locations and Products in that Warehouse- only.

Hi Nisthulan, have you already solved this problem? Can you help me I have the same problem on restricting users access in warehouse? Thanks in advance

on 9/30/14, 9:42 PM

Tarek Mohamed Ibrahim

--Tarek Mohamed Ibrahim--
| 5 3 7
Gîza, Egypt
--Tarek Mohamed Ibrahim--

I am an old VFP developer on ERP

I have moved to 2p since Nov-2014 and started developing with Python on Odoo.



Tarek Mohamed Ibrahim
On 9/5/16, 2:46 AM

In a new custom module do the following :

Create a security group per warehouse and then create a Rule for each group that restrict this group to see this warehouse only, then assgin the required users to this group.

To implement my idea I created a module 'warehouse_filter'

I created for this purpose two warehouses 'warehouse 1' and 'warehouse 2'

I created two groups, one per warehouse, and a rule for each group with the domain using the warehouse name as a filter, I tested it and worked fine

Here is my work

<?xml version="1.0" ?>
<record model="ir.module.category" id="module_category_warehouse_filter">
<field name="name">Warehouse Filter</field>
<field name="sequence">80</field>
<record id="group_warehouse_1" model="res.groups">
<field name="name">Warehouse 1</field>
<field name="category_id" ref="warehouse_filter.module_category_warehouse_filter"/>
<record id="group_warehouse_2" model="res.groups">
<field name="name">Warehouse 2</field>
<field name="category_id" ref="warehouse_filter.module_category_warehouse_filter"/>
<record id="rule_for_warehouse_1" model="ir.rule">
<field name="name">Rule for Warehouse1</field>
<field ref="stock.model_stock_location" name="model_id"/>
<field name="domain_force">[('name','=','warehouse 1')]</field>
<field name="groups" eval="[(4, ref('warehouse_filter.group_warehouse_1'))]"/>
<record id="rule_for_warehouse_2" model="ir.rule">
<field name="name">Rule for Warehouse2</field>
<field ref="stock.model_stock_location" name="model_id"/>
<field name="domain_force">[('name','=','warehouse 2')]</field>
<field name="groups" eval="[(4, ref('warehouse_filter.group_warehouse_2'))]"/>

I hope this idea be useful.

This is the main idea, but it could be implemented better by create a new field in the stock.location model called 'wh_type', and filter by this field, not by the warehouse name, so several locations may take one type.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

3 follower(s)


Asked: 1/15/14, 8:36 AM
Seen: 2042 times
Last updated: 9/5/16, 2:46 AM