Go to file
2026-05-27 09:29:00 +07:00
models first commit 2026-05-27 09:29:00 +07:00
views first commit 2026-05-27 09:29:00 +07:00
__init__.py first commit 2026-05-27 09:29:00 +07:00
__manifest__.py first commit 2026-05-27 09:29:00 +07:00
.gitignore first commit 2026-05-27 09:29:00 +07:00
README.md first commit 2026-05-27 09:29:00 +07:00

POS & Kitchen Custom Access

A custom Odoo 19 module designed to restrict menu visibility and streamline the interface for Point of Sale (POS) and Kitchen Display (KDS) users. It cleans up the user interface by hiding unrelated apps and administrative menus while ensuring standard security rules are respected.

🌟 Key Features

  1. User Settings Integration: Adds "Is POS User?" and "Is Kitchen User?" checkboxes directly inside Odoo's default User form (under the Access Rights tab).
  2. Standard App Hiding: When either restriction checkbox is checked, Odoo hides all unrelated root menus (such as Discuss, Documents, CRM, Inventory, etc.) from their navigation bar.
  3. POS Administrative Submenu Hiding: When "Is POS User?" is checked:
    • Only the Point of Sale Dashboard is visible.
    • Administrative submenus like Orders, Products, Reporting, and Configuration are completely hidden.
  4. Kitchen Display Overview: When "Is Kitchen User?" is checked:
    • The Kitchen Display root menu is made accessible.
    • We automatically reactivate the standard Odoo 19 Kitchen Display root menu (pos_enterprise.menu_point_kitchen_display_root) and open it up to the standard internal user group (base.group_user).
  5. Smart Group Provisioning:
    • To prevent "Access Error" messages or blank screens when a Kitchen User loads the KDS screen, our module automatically assigns the required underlying "Point of Sale/User" security group when "Is Kitchen User?" is checked.
    • If both checkboxes are subsequently unchecked, the group is automatically removed to keep your security configuration pristine.
  6. Vanilla Behavior Preservation: Standard, unrestricted non-manager users in the database still do not see the Kitchen Display root menu, strictly preserving default Odoo behavior.

🛠️ Installation & Setup

  1. Copy Module: Ensure this directory (pos_kitchen_custom_access) is located within your Odoo custom addons directory.
  2. Update Addons List:
    • Activate developer mode in Odoo.
    • Navigate to Apps and click Update Apps List.
  3. Install: Search for pos_kitchen_custom_access and click Activate / Upgrade.
  4. Configure Users:
    • Navigate to Settings > Users & Companies > Users.
    • Open the target user, scroll down to the Access Rights tab, and check "Is POS User?" and/or "Is Kitchen User?".
    • Save the form. The module automatically syncs group permissions in the background.

📂 Codebase Architecture

pos_kitchen_custom_access/
├── __init__.py               # Python initialization
├── __manifest__.py           # Module manifest metadata and dependencies
├── .gitignore                # Git ignore files
├── README.md                 # Documentation
├── models/
│   ├── __init__.py           # Python models registration
│   ├── ir_ui_menu.py         # Extends _filter_visible_menus() to apply dynamic menu filtering rules
│   └── res_users.py          # Extends res.users with boolean checkboxes & auto-syncing of POS group
└── views/
    └── res_users_views.xml   # Inherits base.view_users_form to add UI fields and reactivates KDS root menu

💡 Technical Notes

  • No Access Blocking: This module strictly performs menu filtering to streamline the UI. It does not block backend controllers or standard API accesses, allowing background tasks and POS operations to run seamlessly.
  • ORM Cache Invalidation: The write and create operations on user records automatically flush Odoo's registry and menu cache to ensure that changes in access rights are reflected on the next page refresh without requiring a server reboot.