About Advanced Menu Management
Menu Management Interface
How to Manage Access to Odoo Menus
The access to Odoo menus can be managed at different levels. You can hide the menu for everyone, and show/hide the menu for certain companies, groups of users, and users.
If any menu or submenu is not of use to your business, you can hide it for everyone. For that, in the Menu Management interface, find the menu/submenu that you don't need and put a tick in the box 'Hide for everyone'. After that, none of the users will be able to access such an entry.
If the menu is required again, you will still be able to recover the visibility by removing the tick from the box 'Hide for everyone'.
The setting is prioritized over the settings 'Show only for users' and 'Show only for groups'. For example, the menu 'Events' was available to Anita Oliver and all users with the role 'Sales/User: Own Documents Only', but then, we decided to hide the menu for everyone and ticked the option 'Hide for everyone'. After that, the menu was hidden from all users, including Anita Oliver and users with the role 'Sales/User: Own Documents Only'.
Hide/Show Menus for Companies
In case you work in a multicompany environment, and companies' specifics are different, it might be useful to hide/show some menus and submenus for specific companies. This way, the set of shown menus might be different according to the company's needs.
To make certain menus/submenus invisible for companies, choose the companies in the field 'Hide for companies'. Take into account that if a user has any available company out of this list, the menu will be shown. For example, we have decided to hide the menu 'Discuss' from the company 'San Francisco' and chose it in the field. After that, the menu will be hidden for all users related to the company.
To show certain menus/submenus for companies, choose the companies in the field 'Show only for companies'.
If a company is defined, then for other companies, the menu will be hidden. For example, if we specify the company 'Chicago' in the field by the menu 'Discuss', then no other company will be able to access the menu 'Discuss', except for the chosen one.
Take into account that if the company is written in both fields of the same menu/submenu, the field 'Hide for companies' will be prioritized over the field 'Show only for companies', while the restrictions will be cumulative. Therefore the menu will be unavailable for both the company and all other companies.
If a user has access to several companies, and one of the companies is written in both fields, then the related menu/submenu will be visible only when several companies are selected in the top right corner, unless hidden by other fields (for example, 'Hide for users').
For example, we have a menu 'Discuss' that we don't need, so decided to make it invisible for all companies except 'San Francisco' and added the company 'San Francisco' to the field 'Show only for companies'. After reloading the page, the field became unavailable for all companies, except 'San Francisco'. Then, we added the company to the field 'Hide for companies' of the same menu, and the menu became unavailable for the company 'San Francisco' as well. Simultaneously, our user Mitchel Admin has access to several companies (San Francisco and Chicago), and when both companies are selected in the top right corner, the menu 'Discuss' becomes visible to him.
Hide/Show Menu for Users
It is possible to hide/show menus and submenus for particular users. It is useful if you don't want a certain menu/submenu to be visible for a user, but you can't regulate it through the access rights. In case a menu/submenu is hardly ever used and/or is distractive, hide it from the user or from all users except the chosen one.
To make certain menus/submenus invisible for particular users, choose the users in the field 'Hide for users'. For example, add Mitchel Admin to the field by the menu 'Contacts' and it will be hidden for him.
To show certain menus/submenus for particular users, choose the users in the field 'Show only for users'. If defined, for other users, the menu will be hidden. For example, add Abigail Peterson and Billy Fox to this field by the menu 'Contacts', and other users, i.e. Anita Oliver will not see the menu.
If the user is selected in both fields of the same menu/submenu, the field 'Hide for users' will be prioritized over the field 'Show only for users'. For example, if Abigail Peterson is mentioned in both fields, then the menu will be unavailable for her and for other users that aren't mentioned in the field 'Shown only for users'.
Take into account that the menu might still be hidden for chosen users if other settings (e.g. 'Hide for everyone') assume that.
Optionally, allow certain users to hide the menus they don't need. This way, they will be able to see only the menu entries they really need, without being distracted by other menus (see Access Rights).
Hide/Show Menus for User Groups
It is also possible to show certain menus and submenus only for the chosen groups of users. It might be particularly useful to quickly hide a certain menu for all users, that don't have the related group assigned.
Unlike in standard Odoo, the module keeps the access changes, so even after updating the modules/Odoo core, the set groups will be saved and will have access accordingly.
To show certain menus/submenus for particular user groups, choose the groups in the field 'Show only for groups'. If defined, for other groups, the menu will be hidden. For example, we decided to show the menu 'Events' only for the users with the user group 'Sales/Administrator'. So we have added the group to the field, and the menu was hidden for all other users, e.g. for Anita Oliver, while she had the role 'Sales: Own Documents Only' assigned.
Take into account that the menu might still be hidden for the users of the chosen-in-the-field user groups if it is assumed by other settings (e.g. 'Hide for companies' or 'Hide for users'). For example, Mitchel Admin has the role 'Sales/Administrator' assigned, but he was added to the field 'Hide for users', so the menu 'Events' was hidden for him.
Access Rights
The right to access the module's menu belongs to the users with the 'Administration > Settings right. You can assign it to one or several users to manage the access to menus on different levels. For that:
1. Go to General Settings
2. Click 'Manage Users' and choose a user
3. Find the section 'Administration' and in the field 'Administration' choose the option 'Settings'.
After that, the user will see the option 'Menu Management' in the systray of General Settings.
In case you have accidentally hidden a certain menu, for example, the menu 'Settings', so even the users with access 'Administration > Settings' cannot access the Menu Management interface, you can always open the interface through the related button in the user's preferences. For that:
1. Click on the user's picture in the top right corner and open the menu 'Preferences' (the menu might be called 'My profile' depending on the installed modules)
2. In the tab 'Preferences' find the button 'Menu Management'.
As you click on the button, you will be redirected to the menu management interface, from where you will be able to manage the available menus.
Keep in mind, that the button is visible only to the users with the right Administration > Settings.
Also, you can give access to any internal user(s), so they can decide themselves which of the available menus should be hidden. For that:
1. Go to General Settings
2. Turn on the developer mode
3. Click 'Manage Users' and choose a user
4. Find the section Other at the bottom of the page and tick the option 'Hide Menus through Preferences'.
After that, a special field 'Hide menus' will appear in the tab preferences of the user. To hide one's own menus:
1. Click on the picture in the top right corner and choose the option 'My Profile'
2. In the tab preferences, find the field 'Hide Menus'
3. Choose one or several menus that should be hidden.
After reloading the page, the chosen menus will be hidden from the user's main menu. To show them again, just remove the selection from the field 'Hide enus'.
For example, our internal user Anita Oliver has access to the menu Discussion, but she doesn't read or participate in any of them. The menu distracts her as she prefers to have only relevant ones. So, she chooses the menu 'Discuss' in the field 'Hide Menus'. Then, the menu becomes hidden for her.
The field 'Hide menus' in the user's preferences and the field 'Hide for users' in the 'Menu Management' are interconnected. Therefore, if a user chooses to hide some menus, the responsible person sees that and can manage it. For example, if Anita Oliver decided to hide the menu 'Discuss', then the responsible user 'Mitchel Admin' sees her name by the menu in the field 'Hide for users' and can make it visible again.
Use Notes
Sometimes there may be a need to manage the visibility of certain menus and submenus on multiple levels at once. In such cases, it is important to understand the way the fields interact with each other.
For example, if we tick the option 'Hide for everyone', then regardless of other settings, the menu will be hidden from everyone.
If we decide to hide a menu for the company 'San Francisco' and choose a user related to the company in the field 'Show only for users', then the menu will be hidden for him/her unless he has access to another company.
If we decide to show a menu for the company 'San Francisco' and choose a user related to the company in the field 'Hide for users', then the menu will be visible to all users of the company except for that user.
If we decide to hide a menu for the company 'San Francisco' and choose a user group in the field 'Show only for groups', then the menu will be hidden for all users within the company and for all users, except the ones with the selected user group assigned in other companies.
If we decide to hide a menu for a certain user, e.g. Anita Oliver, and add one of her user groups 'Sales: Own Documents Only' to the field 'Show only for groups', then the menu will still be invisible for her, while being visible to all other users with the group 'Sales: Own Documents Only'.
If we decide to show a menu for a certain user, e.g. Anita Oliver, hide the same menu for Mitchel Admin, and show it to all users with the rights 'Sales/Administrator' and 'Purchase/Administrator', then the menu will be shown to all users with those groups and to Anita Oliver. But, it will be hidden from Mitchel Admin, regardless of his user groups.