🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
http://blog.csdn.net/wangnan537/article/details/44004061 实际应用Odoo(OpenERP)的过程中, 会有对某用户组隐藏菜单的需求. 只对某一用户组隐藏菜单,可使用如下方式: ~~~ <record id="original_module.menu_id" model="ir.ui.menu"> <field name="groups_id" eval="[(3,ref('my_new_group_id'))]"/> </record> ~~~ 隐藏消息菜单实践记录: 在源码source\addons\mail\mail_thread_view.xml中,消息主菜单的定义如下: ~~~ <!-- Top menu item --> <menuitem name="Messaging" id="mail.mail_feeds_main" groups="base.group_user" sequence="10"/> ~~~ 由此可见, 消息主菜单对base.group_user用户组可见, 这是一个通用的用户组, Odoo系统中所有用户默认属于此组, 因此我们使用 ~~~ <record id="mail.mail_feeds_main" model="ir.ui.menu"> <field name="groups_id" eval="[(3, ref('base.group_user'))]"/> </record> ~~~ 但测试发现这种方法没有生效! 目前尚不清楚具体原因. 此路不通,只能曲线救国. 先新建一个用户组, 并指定消息菜单只对其可见. 代码如下所示: ~~~ <!-- 新建用户组hideme --> <record id="hideme" model="res.groups"> <field name="category_id" ref="base.module_category_hidden" /> <field name="name">hide me</field> </record> <!-- 指定只有hidme用户组才能看到消息菜单 --> <record id="mail.mail_feeds_main" model="ir.ui.menu"> <field name="groups_id" eval="[(6, 0, [ref('hideme')])]"/> </record> ~~~ 这种方式会波及到之前所有能看到此菜单的用户组, 如想让某个用户组仍能看到这个菜单, 需要改动代码,示例如下: ~~~ <!-- 指定只有hidme用户组才能看到消息菜单 --> <record id="mail.mail_feeds_main" model="ir.ui.menu"> <field name="groups_id" eval="[(6, 0, [ref('hideme')])]"/> <!-- 允许销售/查看自己的线索用户组操作消息菜单 --> <field name="groups_id" eval="[(4, ref('base.group_sale_salesman'))]"/> </record> ~~~