DEV Community

Jeevachaithanyan Sivanandan
Jeevachaithanyan Sivanandan

Posted on

Odoo: Restricting Visibility Menu item for based on groups

In response to the query regarding making the 'Contacts' menu item visible only to users belonging to the 'hr.group_hr_manager' group, there is a clear understanding that modifying the groups attribute directly doesn't entirely replace the existing groups assigned to the menu item.

By directly assigning groups="hr.group_hr_manager" to the 'Contacts' menu item, the intended restriction was not achieved, and the menu item remained visible to users who were not part of the targeted group.

Upon analyzing the situation, it was discerned that simply assigning the new group did not remove the existing groups from the menu item. Thus, both the old and new groups were retained, allowing access to users from both groups.

To resolve this issue effectively, a different approach was adopted. The existing groups assigned to the menu item needed to be removed first before assigning the new group. This ensures that only the specified group has access to the menu item.

Utilizing Odoo's XML data model, the following solution was implemented

<record id="contacts.menu_contacts" model="ir.ui.menu">
    <field name="groups_id" eval="[(5,0),(4, ref('hr.group_hr_manager'))]"/>
</record>
Enter fullscreen mode Exit fullscreen mode

In this solution:

(5,0) is utilized to clear all existing group assignments from the 'Contacts' menu item.
(4, ref('hr.group_hr_manager')) is employed to assign the 'hr.group_hr_manager' group to the menu item, ensuring exclusive visibility for users belonging to this group.
Enter fullscreen mode Exit fullscreen mode

This approach guarantees that only users belonging to the specified group have access to the 'Contacts' menu item, fulfilling the requirement accurately.

For further verification, activating the developer mode and navigating to Settings -> Technical -> User Interface -> Menu items allows for inspecting the assigned groups to the menu item, ensuring the intended restriction is correctly applied.

Top comments (0)