Odoo(OpenERP)开发实践:菜单隐藏(2)

在实际应用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>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值