access_restriction_by_user/README.md
2026-01-05 12:03:16 +07:00

39 lines
1.5 KiB
Markdown

# Access Restriction By User
This module allows administrators to restrict user access to specific records in Inventory, Manufacturing, and Approvals without using complex Record Rules.
## Features
Restrict visibility of the following records based on User configuration:
* **Warehouses** (`stock.warehouse`)
* **Picking Types** (`stock.picking.type`)
* **Locations** (`stock.location`)
* **Work Centers** (`mrp.workcenter`)
* **Approval Categories** (`approval.category`)
## Configuration
1. Navigate to **Settings > Users & Companies > Users**.
2. Select the user you want to restrict.
3. Go to the **Access Restrictions** tab.
4. Add records to the following fields:
* **Allowed Warehouses**
* **Allowed Picking Types**
* **Allowed Locations**
* **Allowed Work Centers**
* **Allowed Approvals**
## Important Usage Notes
* **Empty List = Unrestricted**: If an "Allowed" field is left empty for a user, they will have access to **ALL** records of that type.
* **Populated List = Restricted**: If one or more records are added, the user will **ONLY** see those specific records.
* **Superuser**: The Superuser (OdooBot) and administrators bypassing access rights are not affected by these restrictions.
## Technical Details
This module overrides the `_search` method on the target models to apply a domain filter based on the current user's allowed list. This ensures consistency across views (list, kanban, many2one dropdowns) and avoids common issues associated with Record Rules.
## Author
Suherdy Yacob