now, Idempiere not yet control warehouse access to Role or User.
I have solution temporary:
1. Define 1 table warehouse access to User.
2. Create 1 Function check Warehouse Access to Role of User. Here, In function validateWarehouseAccess I need param AD_User_ID, AD_Role_ID, AD_Client_ID, AD_Org_ID
Example: M_Warehouse_ID IN (SELECT M_Warehouse_ID FROM validateWarehouseAccess(@#AD_User_ID@, @#AD_Role_ID@, @#AD_Client_ID@, @#AD_Org_ID@)
3. With each Window, you want validate access: table must have M_Warehouse_ID. After Set Function to SqlWhere In Tab (Window, Tab & Field).
I hope in future, Idempiere will be create Warehouse Access