コンテンツへスキップ
メニュー
この質問にフラグが付けられました
4 返信
196 ビュー

Hi guys, I'm trying to restrict (invisible make) certain menu items for a specific user group only. I tried using this code:

<record id="account.menu_finance_entries" model="ir.ui.menu"> <field name="groups_id" eval="[(3, ref('base_accounting_kit.group_account_cashier'))]"/> </record>

...but it's not working. I'm still trying to figure out why. If anyone knows a reliable way to do this, please share. Thanks!

アバター
破棄
最善の回答

Hi,


Go to Settings > Technical > Menu Item.

Add the user group in the lines as follows,



Or try the code ,


<record id="account.menu_finance_entries" model="ir.ui.menu">

    <field name="groups_id" eval="[Command.link(ref('base_accounting_kit.group_account_cashier'))]"/>

</record>


Related module;- https://apps.odoo.com/apps/modules/19.0/hide_menu_user


Hope it helps

アバター
破棄
著作者 最善の回答

Thanks a lot for your reply 🙏. I just have a small doubt — if I use 6, [...] as you suggested, will that also affect other user groups and hide the menu for them as well?

アバター
破棄
最善の回答

Hello Uday,



It seems like you're trying to remove a specific user group from a menu item, which is a common requirement for customizing access rights in Odoo. The code snippet you've shared uses the eval attribute with the operation 3 (which stands for removing a record from a many2many field) on groups_id. However, if the menu item still appears, it might be due to one of the following reasons:



  Ensure the module is upgraded

  Verify the user is not assigned to another group that has access

  Check if there's a parent menu item that's visible, making this item accessible


Instead of removing the group, you might want to explicitly set which groups can see the menu by using eval="[(6, 0, [ref('your_module.your_group_id')])]". This replaces the groups with the ones you specify (operation 6 sets a new list of records). Here's how you can adjust your code:



  <record id="account.menu_finance_entries" model="ir.ui.menu">

  <field name="groups_id" eval="[(6, 0, [ref('base_accounting_kit.group_account_cashier')])]" />

  </record>


Remember to upgrade your module after making changes to ensure they take effect. If the issue persists, it might be beneficial to review the user's access rights in detail or consider creating a new group with the specific access rights needed.


For personalized assistance:
https://www.pragtech.co.in/contact-us-mql.html

アバター
破棄
最善の回答

Hello Uday,

<field name="groups_id" eval="[(3, ref('base_accounting_kit.group_account_cashier'))]"/>


In your case, the menu has no groups assigned, so 3, has no effect.

The 3,  works only if the menu already has assigned groups.(it removes the specified group.)

In your case you want to restrict the menu  to a specific group, so you need to overwrite all existing groups using 6, 


<record id="account.menu_finance_entries" model="ir.ui.menu">

    <field name="groups_id" eval="[(6, [ref('base_accounting_kit.group_account_cashier')])]"/></record>

I hope this is helpful for you..

アバター
破棄

Hello Uday,
You want to hide the menu for others except this user group "group_account_cashier", right?

関連投稿 返信 ビュー 活動
5
9月 25
1053
1
9月 25
330
1
9月 25
773
1
9月 25
297
3
9月 25
569